【问题标题】:Gulp watch EPERM on WindowsGulp 在 Windows 上观看 EPERM
【发布时间】:2017-01-25 14:47:08
【问题描述】:

使用 gulp 和新的 Microsoft bash shell,我正在尝试设置一个 gulp watch 来将我的 scss 编译成 css,这样当编译出错时手表不会停止。

我已经设置了一个名为 sass 的 gulp 任务来执行此操作,我可以使用 gulp sass 从命令行很好地运行它,但是当我尝试使用 gulp watch 运行我的 gulp watch 命令时,我得到了一个 EPERM我无法以某种方式修复我的 gulp.watch 工作的错误。下面是输出到命令行的错误消息。

我已经尝试更改我的 node_modules 文件夹的权限,以及使用 sudo 来执行此操作,但我仍然收到此错误。非常感谢您的帮助。

var gulp = require('gulp');
var sass = require('gulp-sass');
var plumber = require('gulp-plumber');
var notify = require('gulp-notify');

gulp.task('watch', ['sass'], function() { 
    gulp.watch('app/scss/**/*.scss', ['sass']);
})

gulp.task('sass', function() {
  return gulp.src('app/scss/**/*.scss')
    .pipe(customPlumber('Error Running Sass'))
    .pipe(sass())
    .pipe(gulp.dest('app/css'))
})

function customPlumber(errTitle){
    return  plumber({
        //use notify plugin to report error as windows toaster message
        errorHandler:notify.onError({
                //Customizing error title
                title:errTitle || "Error running Gulp",
                message: "Error: <%= error.message %>",
        })
    });
}

【问题讨论】:

  • 我遇到过这种情况,文件和文件夹被隐藏了。此外,如果您进入 Windows shell 并使用 icacls,您可能会看到一些东西。
  • 检查 icacls 并且所有内容都有 (F),这应该意味着已授予完全访问权限。
  • 检查属性并检查 (F) 是否应用于用户或所有人组 - 不仅仅是你。还要检查它们是否未被锁定它们的程序使用。
  • 感谢您的帮助,我认为问题可能出在新的 Windows bash shell 上。我刚刚安装了 Cygwin 并在那里尝试过,它工作正常!

标签: gulp gulp-watch windows-subsystem-for-linux


【解决方案1】:

WSL 不支持慢速/预览/生产环中的 FS 通知系统调用。在 Fast ring 中,它支持跟踪 WSL 内部所做的更改。开发人员承诺将尽快添加对跟踪 Windows 中所做更改的支持。

相关链接:

【讨论】:

  • 很高兴知道。谢谢!
猜你喜欢
  • 2014-11-02
  • 2016-12-15
  • 2016-07-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多