【问题标题】:Constant EBUSY issues on WindowsWindows 上的持续 EBUSY 问题
【发布时间】:2015-06-23 03:58:54
【问题描述】:

我有一个非常简单的 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 工作)。

这个错误是一个问题,因为只要遇到错误,watch 任务就会停止运行。 gulp-plumber.on('error', ...) 都不能解决这个问题。

有没有办法解决这个问题?如果相关,我在 Windows 上。

更多相关点:

  • 完全删除 sass 并不能解决问题。
  • 对任一任务的内容进行 try/catch 也不起作用。
  • 我正在使用 Sublime Text 3 来编辑文件。我认为问题在于 gulp.src 在 Sublime 仍在写入文件时尝试读取文件(尽管我不完全确定)。

【问题讨论】:

  • 不确定它是否有助于解决这个问题,但您应该返回使用 gulp.src 创建的流 - 即 return gulp.src().pipe(gulp.dest());

标签: windows node.js gulp gulp-watch


【解决方案1】:

您很有可能在 Microsoft Word 中打开了其中一个文件。 Word 会锁定对文件的访问权限。 完全退出 MS Word 并重新构建。 为我解决了这个问题。希望对您有所帮助!

【讨论】:

  • 我不这么认为。这些是代码文件,不是我会用word打开的。
  • 您是否可能在此处意外右键单击并打开它?当然,我知道人们不会故意在 Word 中编辑代码。但人为错误是一回事。也许不是 Word,而只是其他一些程序锁定了文件。可能有第二个 localserver 实例正在运行?
【解决方案2】:

所以我对此并不完全确定,因为我不运行 Windows,但这里有一些指针:

  • 就像我在评论中提到的,总是return 你的流来自 gulp 任务。这样一来,gulp 的任务管理器就可以知道任务何时完成,并且可以正确排序您的依赖关系。
  • 如果您要覆盖系统正在使用的文件,则不建议这样做。有关更多详细信息,请参阅此问题:https://github.com/joyent/node/issues/3017
  • 我也不确定这是否会有所帮助,但您可以尝试将编译后的 CSS 写入子目录,例如 ./dist/css 或类似的内容。
  • 可能值得在vinyl-fs(用于gulp.src 等的模块)上打开一个问题(先尝试上述几点!)。

【讨论】:

  • 感谢您的帮助!不幸的是,前三个建议没有奏效;我想我会跟随你的第四个。不过,我可能会在 gulp 而不是vinyl-fs 上提交一个错误,因为我怀疑这也可能是 gulp.watch 的问题。
  • ==== > 先试试这个stackoverflow.com/questions/36566236/…
猜你喜欢
  • 1970-01-01
  • 2015-10-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多