Gulp eslint 找不到我的 .eslintrc 文件
Gulp eslint doesn't find my .eslintrc file
我的 .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 错误,这很好。
知道什么不正常吗?
根据 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());
});
请注意,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() 方法是可取的,因为 task/stream 已停止,因此有没有无效代码写入输出。
如果两者都不使用,那么错误仍然会被捕获,但只会显示在控制台输出中。因此,根据您的任务流程和设计,目标文件可能仍会被写入,但您可以方便地立即更正错误并继续,而无需再次启动管道 processing/watch 任务。另一种方法是查看 gulp-plumber 或其他一些方法,这样您就不会中断 gulp 监视任务,但也不会编写包含未通过 linting 验证的代码的文件。
我的 .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 错误,这很好。
知道什么不正常吗?
根据 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());
});
请注意,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() 方法是可取的,因为 task/stream 已停止,因此有没有无效代码写入输出。
如果两者都不使用,那么错误仍然会被捕获,但只会显示在控制台输出中。因此,根据您的任务流程和设计,目标文件可能仍会被写入,但您可以方便地立即更正错误并继续,而无需再次启动管道 processing/watch 任务。另一种方法是查看 gulp-plumber 或其他一些方法,这样您就不会中断 gulp 监视任务,但也不会编写包含未通过 linting 验证的代码的文件。