使用npm run-script运行时,ESLint生成不同的输出

时间:2016-01-04 13:35:31

标签: npm eslint

当我用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子目录中的文件中。

2 个答案:

答案 0 :(得分:14)

Globs在package.json文件中的工作方式不同。

诀窍是将路径匹配器包装在单引号中,以便在它们传递给eslint之前在shell级别进行扩展。

// package.json
// ...
"scripts": {
  "lint": "eslint 'scripts/**/*.js'"
}
// ...

答案 1 :(得分:0)

大卫的回答之类的声音解决了他遇到的问题。但是,我对所描述的问题有相同的症状。

在我的情况下,问题是npm在项目目录中使用的node_modules的插件版本与全局npm文件夹的版本不同。

从命令行运行eslint使用的是全局版本。协调这些版本可以解决我的问题。