在Windows上从NPM脚本运行ESLint

jda*_*vis 5 javascript npm eslint

在我的项目中,我尝试将ESLint实施为从npm脚本启动的构建过程的一部分。

我有eslint,所有插件都需要作为npm软件包安装,并且我的.eslintrc文件已全部安装。当我然后运行命令时...

eslint src
Run Code Online (Sandbox Code Playgroud)

...在Mac上,一切正常。因此,我可以接受该命令并将其粘贴到npm脚本中,并且效果很好。

但是,在Windows上遇到问题。当我安装eslint npm软件包时,无法从命令行使用eslint。我看到它已经安装在node_modules目录中,并且将可执行文件放入了node_modules / .bin目录中,但是当我运行命令时...

eslint src
Run Code Online (Sandbox Code Playgroud)

...我收到一条错误消息,提示未找到eslint命令。

如果我在全球范围内安装eslint和所有插件,我可以使它正常工作,但这不是理想的选择,因为其他任何克隆我的代码的人也都需要这样做。就像在Windows上一样,命令行没有映射到node_modules / .bin的路径。

我试图用这个小技巧解决这个问题:

PATH=$(npm bin):$PATH eslint src
Run Code Online (Sandbox Code Playgroud)

当我直接从命令行运行此命令时,似乎可以找到eslint命令,并且一切正常。但是,当我将同一命令放入npm脚本时,该脚本运行时没有输出,也没有错误。

关于如何进行此工作的任何方向都将非常棒。谢谢。

Gya*_*eep 5

如果你package.json这样配置

{
  "name": "test",
  "version": "0.1.1",
  "description": "Validate files with ESLint",
  "scripts": {
    "test": "eslint src"
  },
  "devDependencies": {
    "eslint": "^2.0.0",
    "eslint-config-ideal": "^0.1.0"
  }
}
Run Code Online (Sandbox Code Playgroud)

现在只需运行

npm install
Run Code Online (Sandbox Code Playgroud)

然后运行之后

npm test
Run Code Online (Sandbox Code Playgroud)

这应该可以跨操作系统工作。

注意:如果直接运行eslint则需要使用npm install eslint -g命令全局安装eslint。