首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >npm run-script在失败时静默错误

npm run-script在失败时静默错误
EN

Stack Overflow用户
提问于 2014-11-08 13:16:32
回答 3查看 11.7K关注 0票数 23

当您运行npm test并失败时,您会得到测试输出和一条错误消息,如下所示:

代码语言:javascript
复制
npm ERR! Test failed.  See above for more details.

但是,我创建了一个名为lint的自定义脚本,如下所示:

代码语言:javascript
复制
// package.json
{
  // ...
  "scripts": {
    // ... definition for test ...
    "lint": "./node_modules/jsxhint/cli.js src/",
  }
}

好的,很简单。但是当你运行npm run lint失败了,而不是npm test的漂亮错误,你会在linter的输出之后得到大量的错误消息:

代码语言:javascript
复制
npm ERR! Darwin 14.0.0
npm ERR! argv "node" "/usr/local/bin/npm" "run-script" "lint"
npm ERR! node v0.10.32
npm ERR! npm  v2.1.7
npm ERR! code ELIFECYCLE
# and ~15 more lines...

有没有办法让这些垃圾静默,这样我就可以有一个干净的输出,就像npm test脚本?我知道他们是如何捕获npm源代码中的错误的,但我不认为我可以在不像那样派生npm的情况下添加一个自定义命令……希望我是错的!

但是,如果我是这样的话,我把这样的任务推给Grunt这样的工具会不会更好呢?谢谢!

EN

回答 3

Stack Overflow用户

发布于 2015-05-17 05:49:31

使用npm run --silent选项:

代码语言:javascript
复制
$ npm run --silent test

如果您定义了一个shell别名,那么输入就更少了:

代码语言:javascript
复制
$ alias run='npm run --silent'
$ run test
票数 27
EN

Stack Overflow用户

发布于 2016-06-01 02:46:34

如果你不关心保留linter进程的返回码,你可以像这样配置你的package.json

代码语言:javascript
复制
{
  // ...
  "scripts": {
    // ...
    "lint": "eslint . || true",
  }
}
票数 15
EN

Stack Overflow用户

发布于 2014-11-26 23:41:57

我只是在试着想出同样的办法。这不是一个完美的答案,但它将linting指定为一个预测试脚本(docs),如下所示:

代码语言:javascript
复制
// package.json
{
  // ...
  "scripts": {
    // ... definition for test ...
    "pretest": "./node_modules/jsxhint/cli.js src/",
  }
}

然后,当您第一次输入npm test时,您将只从NPM得到一个单行错误。显然,这意味着如果没有执行linted,您将无法运行测试。

另一种选择是使用像Make、GruntGulp这样的第三方任务运行器。

我只使用过Make,而且我认为设置它是最容易的(至少在OSX和Linux上是这样,对Windows不是很确定)。

在根目录中创建一个Makefile,如下所示:

代码语言:javascript
复制
lint:
    ./node_modules/.bin/jslint ./*.js # or whatever your lint command is

test:
    ./node_modules/.bin/mocha test/*.js # or whatever your test command is

.PHONY: lint test

然后键入make testmake lint以运行这些命令。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26814034

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档