【问题标题】:Setting up a task in package.json在 package.json 中设置任务
【发布时间】:2017-05-23 15:08:58
【问题描述】:

我正在尝试在 package.json 中设置一个任务

"scripts": {
    "unit-test": "mocha './test/unit/**/*.spec.js'",
 }

但是当我跑步时

npm run unit-test

运行结束时控制台会抛出以下错误:

npm ERR! Darwin 16.6.0
npm ERR! argv "/Users/shreya.vakil/.nvm/v6.9.5/bin/node" "/Users/d.bubble/.nvm/v6.9.5/bin/npm" "run" "unit-test"
npm ERR! node v6.9.5
npm ERR! npm  v3.10.10
npm ERR! code ELIFECYCLE
npm ERR! myapp@0.0.1-SNAPSHOT unit-test: `mocha './test/unit/**/*.spec.js'`
npm ERR! Exit status 1

但是,如果我将命令更改为

"scripts" : {
 "unit-test": "mocha './test/unit/**/*.spec.js'; exit 0",
}

不会抛出此错误。但是,我不确定这是否是正确的方法。

【问题讨论】:

    标签: node.js npm mocha.js


    【解决方案1】:

    最初的行为是正确的,如果有点丑陋 - 如果你的测试失败,Mocha 返回一个退出代码 1,这在技术上是一个错误。您的第二个示例使输出更漂亮,但是如果您尝试将构建脚本集成到其他工具(例如,Travis)中,则会导致您出现问题,因为它们无法检测到您的测试何时失败。

    最好的解决方案是去掉 exit 0 并升级你的 NPM 版本 - the output was made much shorter in v4.6.1。您可以通过运行以下命令来执行此操作:

    npm install npm -g
    

    【讨论】:

      猜你喜欢
      • 2017-07-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-19
      • 1970-01-01
      • 1970-01-01
      • 2017-10-27
      • 2020-12-03
      相关资源
      最近更新 更多