如何配置 package.json 来运行 eslint 脚本

Posted

技术标签:

【中文标题】如何配置 package.json 来运行 eslint 脚本【英文标题】:How to configure package.json to run eslint script 【发布时间】:2016-07-18 09:11:11 【问题描述】:

所以我使用 eslint 作为我的 react 项目的 linter,我希望它检查我所有的 .js 文件。

我可以通过脚本做到这一点:

"lint": "eslint back/*.js && eslint backTest/*.js && eslint front/actions/*.js"

我怎样才能让它递归地检查每个.js 文件,例如:

"lint": "eslint -r *.js"

这样我就不必单独输入每个文件了

提前感谢您的帮助

【问题讨论】:

【参考方案1】:

eslint "**/*.js" 递归运行所有文件夹中的所有js文件(在当前文件夹中)

你也可以这样做:AnyFolder/**/*.js

忽略文件夹:eslint "**/*.js" --ignore-pattern node_modules/

在eslint/command-line-interface了解更多

【讨论】:

我已经在我的 Eclipse 氧气中使用 tern 设置了 eslint。它正在对所有文件进行 lint,我必须将其设置为仅 lint *.js 文件。在这里可以做什么? @Colin @Hadrian 默认情况下 eslint 不只解析 *.js 文件吗?如果您添加 . 也可以阅读文档,它足以遍历所有子树以查找 js 文件 ESLint 总是忽略 /node_modules/*/bower_components/* 中的文件。 Documentation 编辑:好的,我意识到你的答案也忽略了子路径中的 node_modules ,我的错。【参考方案2】:

eslint . --ext .js 对扩展名为 .js 的文件进行 lint。

. 定位当前目录和所有子目录中的文件。

要包含其他文件扩展名, eslint . --ext .js,.jsxeslint . --ext .js --ext .jsx

eslint documentation 涵盖此选项。

【讨论】:

【参考方案3】:

我不确定接受的答案是否已过时,但通过查看docs,

默认情况下,它使用 .js 作为唯一的文件扩展名。

另外,根据项目Github上某位成员的comment,使用.等于在所有子目录中运行。在我看来,运行 eslint . 就足够了(尽管它不包括新的 ES Module .mjs 文件)。

【讨论】:

【参考方案4】:

为了增加 TranBrian10 的解决方案,我在本地安装了 eslint,所以在终端中调用 eslint 会导致 command not found 错误。

我可以通过使用npx eslint 来解决这个问题:

`eslint . --ext .js` -> `npx eslint . --ext .js`

正如 GollyJer 所说,由于 . 语法,这不适用于 Windows

【讨论】:

以上是关于如何配置 package.json 来运行 eslint 脚本的主要内容,如果未能解决你的问题,请参考以下文章

如何在没有 grunt 或 gulp 的情况下将 typescript 编译器作为 package.json 脚本运行

如何使用 package.json 运行 ts 脚本?

如何获取package.json 然后通过npm去创建插件

package.json文件配置信息

如何禁用package-lock

万一失败,如何继续运行 package.json 中定义的脚本?