在阅读本文后,我正在尝试使用npm作为任务运行/构建工具:
How to use npm as a build tool
虽然我取得了一些成功,但我仍然坚持一件事。运行命令行全局工具(如JSLINT,JSHINT或ESLINT)时,npm将始终在控制台窗口中显示Exit 1代码:
正如您所看到的,该命令工作正常,但是npm将其视为错误并显示错误日志信息。这是正常的和/或是否有办法为特定命令关闭它?
其他信息:这是我的package.json配置中的脚本块:
“scripts”:{ “start”:“node ./src/server/index.js”, “测试”:“”, “lint”:“eslint index.js” }
然后从npm cli我输入:
npm run lint
这将执行package.json文件中的脚本,标签为:'lint'
答案 0 :(得分:3)
我用这个:
cut -f1,2,5- inputfile
问候!
答案 1 :(得分:2)
由于存在验证错误,因此存在退出代码1的eslint,这使得npm认为在执行期间出现错误。
如果您正在使用linux,则可以使用此技巧始终返回退出代码0:
"scripts": { "start": "node ./src/server/index.js", "test": "", "lint": "eslint index.js; true" }
答案 2 :(得分:2)
NPM脚本旨在按照这种方式工作,因此退出代码1或2(除了0
之外的其他任何内容)将阻止后期任务运行,就像它在操作上一样你的操作系统。
使用--silent
标志是一个选项,但是在脚本存在其他问题的情况下可能成为一个问题,当你的构建时,你最终会撞到墙上在没有任何lint / test错误的情况下开始失败。
此处最好的做法是配置您的流程,以便在您不希望的情况下输出错误退出代码。在这种情况下......你根据你的eslint配置合法地弹出一些错误。这将导致错误退出代码,并且(理所当然地)阻止下一个任务运行。当您使用npm脚本时,这实际上是非常有用的,因为当您知道存在错误时,可以防止测试/构建步骤不必要地运行。
因此,在这种情况下,您希望向项目中添加.eslintrc
文件,并指定一些既可以处理掉毛错误又可以处理npm错误的规则。
我已在下面发布了一个快速示例.eslintrc
文件。在命令行上运行eslint
时,它会自动检测任何.eslintrc
或.eslintignore
个文件,并遵守其配置。
下面的示例将清理您的linting错误,但请记住,它会更改当eslint选择"触发"时将抛出的退出代码。当我将规则更改为0
时,这意味着当它识别出该模式时,它不会提醒您。
您可以阅读有关利用和configuring rule codes的更多信息,或者...查看我创建的使用npm作为构建工具的种子项目,并包括使用eslint:react-flux-npm-automation
// /path/to/project/.eslintrc
{
"parser": "babel-eslint",
"env":{
"browser":true,
"node":true,
"es6":true
},
"rules": {
"strict":0,
"quotes":0,
"no-unused-vars":0
}
}
答案 3 :(得分:1)
我找到了解决这个问题的方法。在脚本块中,我使用测试脚本使用--silent标志为lint调用npm命令:
"scripts": {
"start": "node ./src/server/index.js",
"test": "npm run-script --silent lint",
"lint": "eslint index.js"}
然后在命令行上我可以输入:
npm run test
现在它正在运行而没有显示错误日志。