【发布时间】: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