这是我的lint
任务:
gulp.task('lint', function(){
gulp.src(fileString)
.pipe(eslint())
.pipe(eslint.format());
});
如果fileString
是'js/**/*.js'
,则它会完全没有.js文件。如果它是'js/components/**.jsx'
,它会完全没法.jsx。但'js/**/*.jsx'
或'js/**/*/.*{js,jsx}'
,它会查看所有正确的文件,但不对它们执行任何操作。
这是我的/js
目录(对于反应项目):
├── stores
│ └── heyStore.jsx
├── models.js
├── mixins.js
├── data
│ └── states.js
├── config.js
├── components
│ ├── firstThing.jsx
│ ├── aThing.jsx
│ ├── whoaWhat.jsx
│ └── nahYo.jsx
├── app.jsx
└── api
├── prod.js
└── mock.js
以防万一,这是我的.eslintrc
文件:
{
"parser": "babel-eslint",
"plugins": [
"react"
],
"ecmaFeatures": {
"jsx": true,
"arrowFunctions": true,
"blockBindings": true,
"generators": true
},
"rules": {
"strict": 0,
"no-underscore-dangle": 0,
"no-unused-vars": 0,
"curly": 0,
"no-multi-spaces": 0,
"key-spacing": 0,
"no-return-assign": 0,
"consistent-return": 0,
"no-shadow": 0,
"no-comma-dangle": 0,
"no-use-before-define": 0,
"no-empty": 0,
"new-parens": 0,
"no-cond-assign": 0,
"quotes": [2, "single", "avoid-escape"],
"camelcase": 0,
"semi": [2, "always"],
"new-cap": [1, { "capIsNew": false }],
"no-undef": 2
},
"env": {
"browser": true,
"node": true
},
"globals": {
}
}
答案 0 :(得分:1)
我找到了修正here。
基本上我的gulp任务看起来像:
gulp.task('lint', function(){
gulp.src('js/**/*.{js,jsx}')
.pipe(eslint())
.pipe(eslint.format())
.on('data', function(file) {
if(file.eslint.messages && file.eslint.messages.length){
gulp.fail = true;
}
});
});
process.on('exit', function() {
if (gulp.fail) {
process.exit(1);
}
});
我不知道为什么会这样做,或者为什么要修复它。
答案 1 :(得分:0)
作为gulp.src的输入,您可以提供globs的数组。实际上,这种组合应该有效:[js/**/*.js
,js/**/*.jsx
]。如果您只说js/components/**.jsx
,它也远非理想,请使用适合您的内容:[js/**/*.js
,js/components/**.jsx
,js/**.jsx
,js/stores/**.jsx
]