我在远程服务器上将gulp与livereload
,less
和其他一起使用。 我之前已经成功使用过很多次gulp,但从未经历过这种情况。
正在使用WinSCP保存/编辑文件(我双击该文件,它以崇高文本打开...我保存它,WinSCP会自动将其上传回服务器)。
但是,当这样做时,gulp-less
几乎总是失败。 我有两个编译的核心 CSS 文件 - 一个是 Bootstrap,一个是我自己的 - 它们都应该在修改时使用自己的 gulp 任务进行编译 - 但 Bootstrap 每次都失败,另一个文件大约一半时间失败。
当我说失败时,这就是我的意思 - 使用 Bootstrap,我总是得到同样的错误:
variable @grid-columns is undefined in file ....grid.less line no. 48
即使我将@grid-columns
定义为主引导程序"导入"文件中的第一个标题,也会发生这种情况。
另一个失败,livereload
编译 Less 文件之前的某个时间点重新加载编译的 CSS。 这应该是不可能的,但它以某种方式发生了。
但是,当从SSH命令提示符下,我键入touch myfile.less
或touch anybootstrapfile.less
,一切正常。
显然这很烦人,但它很宜居。 我认为一定有办法解决它。 关于世界上什么可以实现这一目标以及我可以做些什么(如果有的话)来解决这个问题的任何想法?
,当您在内部编辑器中保存文件后,WinSCP 上传文件的时间戳会设置为比以前更早。
如果您使用的是 FTP 协议或 Windows Vista 或更早版本,则可能尤其如此。
有关详细信息,请参阅 WinSCP 常见问题解答:
为什么我上传到网络服务器的更改在网络浏览器中不可见?
好吧。 在Martin的帮助下,我现在意识到他是WinScp的开发人员,我已经解决了这个问题。 我一直在使用 gulp.wait
插件并在最终重新加载之前插入暂停 - 但它不起作用。
因为......这不是问题所在。 上传时出现问题;因为文件很快就会被"触摸"(或者时间戳的某些内容最终导致功能等效)。
所以我将等待进程移到了调用 less 进程之前,如下所示:
gulp.src(src)
.pipe(plumber({
errorHandler:onError
})
.pipe(wait(500))
.pipe(less())
//etc
我要做实验,500毫秒可能比需要的要长。但不会太长而痛苦。 这立即解决了问题。
谢谢马丁!