npm run cmd fails while cmd on command line works

前提是你 提交于 2020-01-01 04:27:06

问题


In my HTTP Status Check project:

If I run node_modules/.bin/jshint . I get:

$ node_modules/.bin/jshint .
test/inAdapters_fileAdapter.js: line 73, col 31, Missing semicolon.

1 error

It executes correctly and produces the expected output: 1 error.

But if I add that command to package.json and try and run it through npm run then it works and produces the expected output but also follows that with a bunch of errors:

$ npm run jshint

> http-status-check@0.0.5 jshint /home/guy/source/http-status-check
> jshint .

test/inAdapters_fileAdapter.js: line 73, col 31, Missing semicolon.

1 error

npm ERR! Linux 3.13.0-24-generic
npm ERR! argv "node" "/home/guy/local/bin/npm" "run" "jshint"
npm ERR! node v0.10.31
npm ERR! npm  v2.0.0
npm ERR! code ELIFECYCLE
npm ERR! http-status-check@0.0.5 jshint: `jshint .`
npm ERR! Exit status 2
npm ERR! 
npm ERR! Failed at the http-status-check@0.0.5 jshint script.
npm ERR! This is most likely a problem with the http-status-check package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     jshint .
npm ERR! You can get their info via:
npm ERR!     npm owner ls http-status-check
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!     /home/guy/source/http-status-check/npm-debug.log

This is how it's defined in package.json:

  "scripts": {
    "jshint": "node_modules/.bin/jshint .",
  },

What have I done wrong?


回答1:


Don't exit with a non-zero error code unless you really mean it. Except for uninstall scripts, this will cause the npm action to fail, and potentially be rolled back. If the failure is minor or only will prevent some optional features, then it's better to just print a warning and exit successfully.

From https://www.npmjs.org/doc/misc/npm-scripts.html

Use:

node_modules/.bin/jshint .; true

Or write a wrapper that calls jshint and then ignores the exit code and exits successfully with a exit code of zero.



来源:https://stackoverflow.com/questions/26088724/npm-run-cmd-fails-while-cmd-on-command-line-works

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!