Globbing不使用gsp eslint和jsx文件

时间:2015-09-05 17:47:34

标签: javascript node.js reactjs gulp eslint

这是我的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": {
  }
}

2 个答案:

答案 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/**/*.jsjs/**/*.jsx]。如果您只说js/components/**.jsx,它也远非理想,请使用适合您的内容:[js/**/*.jsjs/components/**.jsxjs/**.jsxjs/stores/**.jsx ]