可写文件的Gulp任务处理

3
我正在一个VS2015项目中使用Gulp运行jscs,并设置fix选项来处理JavaScript文件。目的是修改读取的同一文件(即源文件和目标文件相同)。
var gulp = require('gulp');
var jscs = require('gulp-jscs');
var chmod = require('gulp-chmod');
var exec = require('gulp-exec');

var ourJsFiles = // an array of files and globbed paths 

gulp.task('jscs', function (callback) {
   ourJsFiles.forEach(function (fn) {
      gulp.src(fn, { base: './' })
         .pipe(jscs({
            "preset": "google",
            "maximumLineLength": 160,
            "validateIndentation": 3,
            "fix": true
         }))
         .pipe(gulp.dest('./'));
   });
   callback();
});

但我不想处理任何只读文件。在 Windows 上,Gulp 是否已经有检测此类文件的方法?

1个回答

0

有一个插件可以让你处理文件的子集:gulp-filter。 其中一个选项是传递过滤函数,该函数将接收vinyl文件对象,因此例如您可以使用该对象的stat.mode属性来保存权限并执行以下操作:

var filter = require('gulp-filter');
...
var writableFiles = filter(function (file) {
        //https://github.com/nodejs/node-v0.x-archive/issues/3045
        var numericPermission = '0'+(e.stat.mode & parseInt('777', 8)).toString(8);
        return numericPermission[1]==='6'
    });
...
gulp.src(....)
    .pipe(writableFiles)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接