我有一个非常简单的Gulpfile:
var gulp = require('gulp'),
prefix = require('gulp-autoprefixer'),
gsass = require('gulp-sass');
gulp.task('sass', function() {
gulp.src('scss/*.scss')
.pipe(gsass({
unixNewlines: true,
style: 'compact'
}))
.pipe(prefix('last 2 versions'))
.pipe(gulp.dest('.'));
});
gulp.task('default', ['sass'], function() {
gulp.watch('scss/*.scss', ['sass']);
});
当更改SCSS文件并运行sass
任务时,我偶尔会(大约10%的时间)在控制台上收到以下错误消息:
events.js:72
throw er; // Unhandled 'error' event
^
Error: EBUSY, open 'C:\whatever\scss\main.scss'
有问题的错误发生在致电gulp.src
期间。将read: false
选项传递给该函数会阻止错误发生(但当然会阻止sass工作)。
此错误是一个问题,因为只要遇到错误,监视任务就会停止运行。 gulp-plumber
和.on('error', ...)
都无法解决此问题。
有没有办法解决这个问题?我在Windows上,如果它是相关的。
更多相关要点:
gulp.src
尝试读取文件,而Sublime仍在写入文件(虽然我并不完全确定)。答案 0 :(得分:3)
您可以在Microsoft Word中打开其中一个文件。 Word锁定对文件的访问。 完全退出MS Word并重新构建。 解决了我的问题。希望它有所帮助!
答案 1 :(得分:0)
所以我对此并不完全确定,因为我没有运行Windows,但这里有一些指示:
return
来自gulp任务的流。这样gulp的任务管理器就会知道任务何时完成,并且可以正确地对依赖项进行排序。./dist/css
或者其他类似的东西。gulp.src
上使用{{1}}等模块,可能值得开启一个问题(首先尝试以上几点后!)。