我在远程服务器上使用gulp livereload
,less
和其他人。我多次成功使用过gulp,从未体验过这种情况。
我正在使用WinSCP来保存/编辑文件(我双击该文件,它在Sublime Text中打开...我保存它,WinSCP会自动将其上传回服务器)。
然而,当这样做时,gulp-less
几乎一直都会失败。我有两个核心CSS文件被编译 - 一个是Bootstrap,一个是我自己的 - 它们都应该在修改后用自己的gulp任务编译 - 但是Bootstrap每次都会失败,而另一个文件大约有一半的时间都会失败。 / p>
当我说失败时,这就是我的意思 - 使用Bootstrap我总是得到同样的错误:
variable @grid-columns is undefined in file ....grid.less line no. 48
即使我将@grid-columns
定义为我的主Bootstrap“导入”文件中的第一个标题,也会发生这种情况。
另一个失败的原因是livereload
在编译Less文件之前的某个时刻重新加载编译的CSS。这应该是不可能的,但它会以某种方式发生。
但是,当我从SSH命令提示符输入touch myfile.less
或touch anybootstrapfile.less
时,一切正常。
答案 0 :(得分:1)
当WinSCP在内部编辑器中保存文件后上传文件时,它可能会将上传文件的时间戳设置为比以前更旧。
如果您使用的是FTP协议或Windows Vista或更早版本,则可能尤其如此。
有关详细信息,请参阅WinSCP常见问题解答:
Why are the changes, I upload to webserver, not visible in the web browser?
答案 1 :(得分:1)
好的。在马丁的帮助下,我现在意识到他是WinScp的开发者,我已经解决了这个问题。我一直在使用gulp.wait
插件并在最终重新加载之前插入暂停 - 它无法正常工作。
因为...... 不是问题所在。问题发生在上传时;因为文件很快被“触及”(或者有时间戳的内容最终导致功能等同)。
所以我把等待过程移到了调用less进程之前:
gulp.src(src)
.pipe(plumber({
errorHandler:onError
})
.pipe(wait(500))
.pipe(less())
//etc
我要试验,500毫秒可能比需要更长时间......但不要太长,不要痛苦。这立即解决了这个问题。
谢谢马丁!