使用NPM作为一个任务运行/构建工具 - 有一些CLI模块
我试图使用NPM作为一个任务运行/看完这篇文章后构建工具的问题:使用NPM作为一个任务运行/构建工具 - 有一些CLI模块
How to use npm as a build tool
而我我取得了一些成功,我陷入了一件事。当运行像的JSLint,JSHINT,或ESLINT一个命令行的全球工具,故宫将始终显示在控制台窗口中的1号出口代码:
正如你所看到的,命令工作正常,但NPM将其视为错误并显示错误日志信息。这是正常的和/或有办法关闭特定的命令?
附加信息:这是脚本块在我的package.json配置:
“脚本”:{ “开始”: “节点./src/server/index.js”, “测试”: “” “皮棉”: “eslint index.js” }
然后从NPM CLI I型:
npm run lint
这将执行与标签的package.json文件中找到的脚本: 'lint'
由于存在验证错误,eslint存在退出代码1,这使得npm认为在执行过程中出现错误。
如果你使用Linux,你可以使用这一招总是返回退出代码0:
"scripts": { "start": "node ./src/server/index.js", "test": "", "lint": "eslint index.js; true" }
我已经找到一个解决这个问题。在脚本块中,我使用的测试脚本调用NPM命令皮棉与--silent标志:
"scripts": {
"start": "node ./src/server/index.js",
"test": "npm run-script --silent lint",
"lint": "eslint index.js"}
然后在命令行我可以输入:
npm run test
现在是工作时不显示错误日志。
NPM脚本被设计为有意使用这种方式,以便退出代码1或2(除0
以外的任何其他代码)将阻止后期任务运行,与在操作系统上运行的方式相同。
使用--silent
标志是一种选择,但可以成为那里有其他问题剧本的问题,你会风撞你的头靠在墙上,当你建立开始,没有任何皮棉/测试错误失败。
这里要做的最好的事情就是配置您的过程,以便在您不需要的情况下不输出错误退出代码。在这种情况下......你有一些基于你的eslint配置合法弹出的错误。这将导致错误退出代码,并(正确如此)阻止下一个任务运行。当你使用npm脚本时,这实际上是非常有用的,因为当你知道有错误时,你可以防止测试/构建步骤被不必要地运行。
因此,在这种情况下,您想要将.eslintrc
文件添加到您的项目中,并指定一些既能处理linting错误也能处理npm错误的规则。
我已在下面发布了一个快速示例.eslintrc
文件。在命令行上运行eslint
时,它会自动检测任何.eslintrc
或.eslintignore
文件,并遵守其配置。
下面的示例将清理你的linting erros,但请记住,它会更改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
}
}
我用这个:
"scripts": {
"start": "node ./src/server/index.js",
"lint": "eslint index.js || exit 0"
}
问候!
这应该是一个伟大的读取你:http://substack.net/task_automation_with_npm_run – naomik 2015-01-27 00:38:20