当我用eslint scripts/**/*.js
lint我的代码时,我看到两个linting错误:
» eslint scripts/**/*.js
/Users/user/dev/scripts/application.js
3:8 error "React" is defined but never used no-unused-vars
/Users/user/dev/scripts/components/Header.js
24:2 error Unnecessary semicolon no-extra-semi
✖ 2 problem (2 error, 0 warnings)
没关系。当我将该命令放入我"scripts"
中的package.json
时,我只会收到一个错误。
// package.json
// ...
"scripts": {
"lint": "eslint scripts/**/*.js"
}
// ...
» npm run lint
/Users/david.tuite/dev/ui/scripts/components/Header.js
24:2 error Unnecessary semicolon no-extra-semi
✖ 2 problems (2 errors, 0 warnings)
另一个linting错误发生了什么?
修改
我开始怀疑这是个问题。丢失的linting错误位于scripts
子目录中的文件中。
答案 0 :(得分:14)
Globs在package.json
文件中的工作方式不同。
诀窍是将路径匹配器包装在单引号中,以便在它们传递给eslint之前在shell级别进行扩展。
// package.json
// ...
"scripts": {
"lint": "eslint 'scripts/**/*.js'"
}
// ...
答案 1 :(得分:0)
大卫的回答之类的声音解决了他遇到的问题。但是,我对所描述的问题有相同的症状。
在我的情况下,问题是npm在项目目录中使用的node_modules的插件版本与全局npm文件夹的版本不同。
从命令行运行eslint使用的是全局版本。协调这些版本可以解决我的问题。