在本地服务器上与团队一起使用 gulp。错误:EPERM:不允许操作,chmod

Gar*_*son 3 file-permissions gulp gulp-sass gulp-watch server

我正在与一个网络团队合作,我们将所有文件保存在办公室的本地共享服务器上。(我们正在慢慢地将所有内容转移到 git,所以请不要评论我们不使用 git 是多么愚蠢。谢谢!)

我们正在使用 gulp 将 sass 编译为 css,当我们其中一个人编译时一切都很好,但是一旦其他人尝试运行节点进程并使用 gulp 进行编译,我们就会收到以下错误......

[10:12:53] Starting 'sass'...
   [10:12:53] Starting 'watch'...
   [10:12:54] Finished 'watch' after 173 ms
   [10:12:54] 'sass' errored after 442 ms
    EPERM: operation not permitted, chmod '/the file path/'
Run Code Online (Sandbox Code Playgroud)

我尝试过使用 chmod 来更改文件权限,但我不认为这是问题所在。我使用 Atom 作为编辑器,团队中的其他一些开发人员使用 Sublime。

我读到一些编辑器可以锁定文件。不确定这是否是原因,但如果是,我不知道如何解决这个问题。解决这个问题的唯一方法是使用 git 并在我们自己的个人计算机上拥有本地副本吗?

提前致谢!

gulpfile.js

// Include gulp
var gulp = require('gulp');

// Include Our Plugins
var sass = require('gulp-sass');
var plumber = require('gulp-plumber');
var cleanCSS = require('gulp-clean-css');
var sourcemaps = require('gulp-sourcemaps');


var sassOptions = {
    errLogToConsole: true,
    outputStyle: 'nested' // Styles: nested, compact, expanded, compressed
};

// Compile Sass file to CSS, and reload browser(s).
gulp.task('sass', function() {
    return gulp.src('includes/scss/*.scss')
        .pipe(plumber())
        .pipe(sourcemaps.init())
        .pipe(sass.sync(sassOptions))
        .pipe(sass.sync().on('error', sass.logError))
        .pipe(sourcemaps.write())
        .pipe(gulp.dest('includes/css'));
});

gulp.task('minify-css', function() {
  return gulp.src('includes/css/*.css')
    .pipe(sourcemaps.init({loadMaps: true}))
    .pipe(cleanCSS({compatibility: 'ie8'}))
    .pipe(sourcemaps.write())
    .pipe(gulp.dest('includes/css'));
});

// Watch Files For Changes
gulp.task('watch', function() {
  gulp.watch('includes/scss/**/*.scss', ['sass']);
});

// Default Task
//gulp.task('serve', ['sass', 'minify-css', 'watch']);
gulp.task('serve', ['sass', 'watch']);
Run Code Online (Sandbox Code Playgroud)

小智 5

发生这种情况是因为您需要以管理员身份运行 gulpfile。因此,运行sudo -i,输入您的管理员密码,然后再次运行。我遇到了同样的问题,它对我有用。