【问题标题】:Gulp eslint doesn't find my .eslintrc fileGulp eslint 找不到我的 .eslintrc 文件
【发布时间】:2016-07-08 07:09:27
【问题描述】:

看起来我的.eslintrc 文件找不到我的gulp-eslint

我定义了一个lint 任务:

gulp.task('lint', function () {
  gulp.src(['src/**/*.js', 'src/**/*.jsx'])
  .pipe(eslint())
  .pipe(eslint.format());
})

它运行但没有显示任何错误。

我的.eslintrc 文件在src 文件夹中定义。我试图将它移动到我的项目的根文件夹,但它没有改变任何东西。

这是一个非常简单的文件:

{
  "parser": "babel-eslint",
  "ecmaFeatures": {
    "classes": true,
    "jsx": true
  },
  "plugins": [
    "react"
  ],

  "extends": "eslint-config-airbnb"
}

当我在终端运行eslint src 时,我得到一堆 eslint 错误,这很好。

知道什么不正常吗?

【问题讨论】:

  • 你必须在 gulp 中捕捉错误。

标签: javascript node.js gulp eslint


【解决方案1】:

根据docs,您需要在管道中出错时失败。

gulp.task('lint', function () {
    // ESLint ignores files with "node_modules" paths.
    // So, it's best to have gulp ignore the directory as well.
    // Also, Be sure to return the stream from the task;
    // Otherwise, the task may end before the stream has finished.
    return gulp.src(['**/*.js','!node_modules/**'])
        // eslint() attaches the lint output to the "eslint" property
        // of the file object so it can be used by other modules.
        .pipe(eslint())
        // eslint.format() outputs the lint results to the console.
        // Alternatively use eslint.formatEach() (see Docs).
        .pipe(eslint.format())
        // To have the process exit with an error code (1) on
        // lint error, return the stream and pipe to failAfterError last.
        .pipe(eslint.failAfterError());
});

【讨论】:

    【解决方案2】:

    提醒一下,documentation 在使用配置文件、它们的使用优先级以及它们的位置方面非常有用和简洁。您还可以添加路径以指定特定管道的配置文件的位置:

    gulp.task('lint', function () {
      gulp.src(['src/**/*.js', 'src/**/*.jsx'])
      .pipe(eslint({ configFile: '.eslintrc'}))
      .pipe(eslint.format())
      .pipe(eslint.failAfterError())
    })
    

    在 gulp-eslint documentation 中应该注意,建议使用 failOnError() 和 failAfterError() 方法,因为任务/流已停止,因此没有无效代码写入输出。

    如果两者都不使用,则错误仍会被捕获,但仅显示在控制台输出中。因此,取决于您的任务流程和设计,目标文件可能仍会被写入,但您可以方便地立即纠正错误并继续进行,而无需再次启动管道处理/监视任务。另一种方法是查看gulp-plumber 或其他一些方法,这样您就不会中断 gulp 监视任务,也不会编写包含未通过 linting 验证的代码的文件。

    【讨论】:

      猜你喜欢
      • 2021-11-12
      • 2021-04-16
      • 1970-01-01
      • 2019-07-29
      • 2016-10-12
      • 2018-07-04
      • 1970-01-01
      • 2020-12-08
      • 2021-02-04
      相关资源
      最近更新 更多