鉴于我的gulpfile.js中的以下代码,每次保存或更改文件时,任务运行两次而不是一次,为什么?我只想让它运行一次.
var gulp = require('gulp');
gulp.task('default', function() {
gulp.watch('server/**/*.js', function(){
console.log('This runs twice everytime I change/save a javascript file located at server/**/*.js');
});
});
Run Code Online (Sandbox Code Playgroud)
我也经历了与grunt和插件grunt-contrib-watch相同的经历.
Rya*_*lah 13
问题出现了,因为您的编辑器(在本例中是Coda 2)在保存时将文件修改两次.vim中出现同样的问题,因为vim 在保存时如何创建缓冲区备份.
在vim中解决问题的方法是添加
set nowritebackup
Run Code Online (Sandbox Code Playgroud)
到你的~/.vimrc文件.这会将默认保存协议更改为仅对原始文件进行一次编辑.
换句话说,默认保存协议如下:
添加set nowritebackup只需在保存时替换原始文件.此协议用于在保存时发生I/O错误时降低数据丢失的风险.
Mus*_*00m 12
我在Espresso中添加了相同的问题,您可以使用debounceDelay选项在Gulp中"修复"它,如下所示:
gulp.watch('/**/*.less', {debounceDelay: 2000}, ['less']);
Run Code Online (Sandbox Code Playgroud)
这对我有用.但是将它添加到每个gulp.watch是一个痛苦我不知道我们是否可以将这个选项全局...
小智 8
这对我有用
.pipe(watch('/**/*.less', { awaitWriteFinish: true }))
Run Code Online (Sandbox Code Playgroud)
https://github.com/paulmillr/chokidar#api
似乎这个问题的答案是所使用的编辑器 Coda 2 的一个功能。根据此处的一些评论以及对多个编辑器的测试,Coda 2 似乎保存了一个临时文件或类似文件,这导致了 gulp watch函数运行两次。
在使用 Coda 2 时我还没有找到可行的解决方案,最终切换到 Sublime Text 3。
| 归档时间: |
|
| 查看次数: |
11507 次 |
| 最近记录: |