0

这是我的lint任务:

gulp.task('lint', function(){
  gulp.src(fileString)
    .pipe(eslint())
    .pipe(eslint.format());
});

如果fileString'js/**/*.js',它只对 .js 文件进行 lints 处理。如果是'js/components/**.jsx'.jsx ,它会非常好。但是'js/**/*.jsx'or '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": {
  }
}
4

2 回答 2

2

我在这里找到了解决办法。

基本上我的吞咽任务看起来像:

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);
  }
});

不过,我不确定为什么需要这样做或为什么要修复它。

于 2015-09-05T21:35:47.380 回答
0

作为 gulp.src 的输入,您可以提供一个globs数组。实际上这种组合应该有效:[ js/**/*.jsjs/**/*.jsx]。如果您只说js/components/**.jsx, 也远非理想,请使用适合您的方法: [ js/**/*.js, js/components/**.jsx, js/**.jsx, js/stores/**.jsx]

于 2015-09-05T20:44:49.230 回答