gpt4 book ai didi

javascript - gulp-jshint 指定应该通过 jshint() 并忽略其他文件的文件

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:00:23 27 4
gpt4 key购买 nike

我有这样的情况,我正在通过 gulp 从 vendor 脚本或我的脚本中构建缩小脚本,例如:

var paths = {
public : './public/javascripts',
api : './public/API',
vendor : './public/vendor',
destination : './dist'
};

gulp.task('scripts-out', function() {
gulp.src([
paths.public + '/a.js',
paths.public + '/b.js',
paths.public + '/c.js',
paths.public + '/d.js',
paths.api + '/e.js',
paths.public + '/f.js'
])
.pipe(jshint())
.pipe(jshint.reporter('default'))
.pipe(concat('out.js'))
.pipe(gulp.dest(paths.destination + '/javascripts'));
});

只有 e.js 不是 vendor 脚本,只有那个脚本应该通过 jshint(),从插件的官方文档中我看不到解决方案。

我尝试将 config 对象传递给 jshint(),类似于:

pipe(jshint({
files: paths.api + '/e.js'
}))

那只是没有用的推测。这个附带问题如何强制 jshint 将结果写入某个文件而不是控制台?

编辑:寻找解决方案我通过 .jshintignore 文件找到方法,该文件应该位于项目的根目录中,例如,如果您想忽略 vendor 文件夹中的所有内容,您只需向 添加一行即可。 jshintignore 文件:public/src/vendor/*

最佳答案

你可以使用 gulp-filter过滤哪些文件被传递给 jshint:

var gulpFilter = require('gulp-filter');
var filter = gulpFilter([paths.public + '/e.js']);

gulp.task('scripts-out', function() {
return gulp.src([
paths.public + '/a.js',
paths.public + '/b.js',
paths.public + '/c.js',
paths.public + '/d.js',
paths.api + '/e.js',
paths.public + '/f.js'
])
.pipe(filter)
.pipe(jshint())
.pipe(jshint.reporter('default'))
.pipe(filter.restore())
.pipe(concat('out.js'))
.pipe(gulp.dest(paths.destination + '/javascripts'));
});

新版本(3.0.1)有界面更新:

 // you should pass {restore: true} for restore ability
var filter = gulpFilter([paths.public + '/e.js'], {restore: true});
...
// filter.restore is now object, not a method
.pipe(filter.restore)

关于javascript - gulp-jshint 指定应该通过 jshint() 并忽略其他文件的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27442861/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com