Gulp 使用 WinSCP - livereload 及更少
Gulp with WinSCP - livereload and less
我在远程服务器上将 gulp 与 livereload
、less
和其他人一起使用。 gulp我之前成功使用过很多次,没遇到过这种情况
我正在使用 WinSCP 来 save/edit 文件(我双击该文件,它在 Sublime Text 中打开...我保存它,WinSCP 自动将它上传回服务器)。
但是,这样做时 gulp-less
几乎总是失败。我有两个编译的核心 CSS 文件——一个是 Bootstrap,一个是我自己的——修改后它们都应该用自己的 gulp 任务编译——但是 Bootstrap每次都失败,另一个文件大约有一半失败。
当我说失败时,这就是我的意思 - Bootstrap 我总是得到同样的错误:
variable @grid-columns is undefined in file ....grid.less line no. 48
即使我在主 Bootstrap "import" 文件中将 @grid-columns
定义为 first-heading,也会发生这种情况。
另一个失败的原因是 livereload
在编译 Less 文件之前的某个时间点重新加载已编译的 CSS。这应该是不可能的,但它以某种方式发生了。
但是,当我在 SSH 命令提示符下键入 touch myfile.less
或 touch anybootstrapfile.less
时,一切正常。
显然这很烦人,但它宜居。我认为必须有一些方法来修复它。关于世界上有什么可以让这件事发生以及我可以做些什么(如果有的话)来解决它的任何想法?
有可能,当您在内部编辑器中保存文件后,WinSCP 上传文件时,它会将上传文件的时间戳设置为比之前更早的时间戳。
如果您使用的是 FTP 协议,或者 Windows Vista 或更早版本,这可能尤其正确。
详情请参考WinSCP FAQ:
Why are the changes, I upload to webserver, not visible in the web browser?
好的。在 Martin 的帮助下,我现在意识到他是 WinScp 的开发者,我已经解决了这个问题。我一直在使用 gulp.wait
插件并在最终重新加载之前插入一个暂停 - 但它没有用。
因为... 这不是问题所在。问题发生在上传时;因为文件很快就会变得 'touched' (或者有一些带有时间戳的东西最终导致功能等效)。
所以我将等待进程移动到 less 进程被调用之前:
gulp.src(src)
.pipe(plumber({
errorHandler:onError
})
.pipe(wait(500))
.pipe(less())
//etc
我要试验一下,500 毫秒可能比需要的要长..但不会太长而不会痛苦。这立即解决了问题。
谢谢马丁!
我在远程服务器上将 gulp 与 livereload
、less
和其他人一起使用。 gulp我之前成功使用过很多次,没遇到过这种情况
我正在使用 WinSCP 来 save/edit 文件(我双击该文件,它在 Sublime Text 中打开...我保存它,WinSCP 自动将它上传回服务器)。
但是,这样做时 gulp-less
几乎总是失败。我有两个编译的核心 CSS 文件——一个是 Bootstrap,一个是我自己的——修改后它们都应该用自己的 gulp 任务编译——但是 Bootstrap每次都失败,另一个文件大约有一半失败。
当我说失败时,这就是我的意思 - Bootstrap 我总是得到同样的错误:
variable @grid-columns is undefined in file ....grid.less line no. 48
即使我在主 Bootstrap "import" 文件中将 @grid-columns
定义为 first-heading,也会发生这种情况。
另一个失败的原因是 livereload
在编译 Less 文件之前的某个时间点重新加载已编译的 CSS。这应该是不可能的,但它以某种方式发生了。
但是,当我在 SSH 命令提示符下键入 touch myfile.less
或 touch anybootstrapfile.less
时,一切正常。
显然这很烦人,但它宜居。我认为必须有一些方法来修复它。关于世界上有什么可以让这件事发生以及我可以做些什么(如果有的话)来解决它的任何想法?
有可能,当您在内部编辑器中保存文件后,WinSCP 上传文件时,它会将上传文件的时间戳设置为比之前更早的时间戳。
如果您使用的是 FTP 协议,或者 Windows Vista 或更早版本,这可能尤其正确。
详情请参考WinSCP FAQ:
Why are the changes, I upload to webserver, not visible in the web browser?
好的。在 Martin 的帮助下,我现在意识到他是 WinScp 的开发者,我已经解决了这个问题。我一直在使用 gulp.wait
插件并在最终重新加载之前插入一个暂停 - 但它没有用。
因为... 这不是问题所在。问题发生在上传时;因为文件很快就会变得 'touched' (或者有一些带有时间戳的东西最终导致功能等效)。
所以我将等待进程移动到 less 进程被调用之前:
gulp.src(src)
.pipe(plumber({
errorHandler:onError
})
.pipe(wait(500))
.pipe(less())
//etc
我要试验一下,500 毫秒可能比需要的要长..但不会太长而不会痛苦。这立即解决了问题。
谢谢马丁!