我在 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 中是否已经有检测到这一点的方法?
最佳答案
有一个插件可以让你处理文件的子集:gulp-filter .
选项之一是传递将接收 vinyl file object 的过滤器功能,所以例如您可以使用拥有权限的对象的 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)
关于javascript - gulp 任务处理可写文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31841664/