Подтвердить что ты не робот

Npm run cmd завершается с ошибкой, когда cmd в командной строке работает

В моем проекте проверки HTTP-статуса:

Если я запустил node_modules/.bin/jshint ., я получаю:

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

1 error

Выполняется правильно и выдает ожидаемый результат: 1 ошибка.

Но если я добавлю эту команду в package.json и попробую запустить ее через npm run, тогда она будет работать и выводит ожидаемый результат, но также следует, что с кучей ошибок:

$ npm run jshint

> [email protected] 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! [email protected] jshint: `jshint .`
npm ERR! Exit status 2
npm ERR! 
npm ERR! Failed at the [email protected] 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

Вот как это определено в package.json:

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

Что я сделал неправильно?

4b9b3361

Ответ 1

Не выходите с ненулевым кодом ошибки, если вы действительно не имеете в виду его. За исключением сценариев удаления, это приведет к тому, что действие npm завершится неудачно и, возможно, будет отменено. Если сбой незначительный или только предотвратит некоторые дополнительные функции, тогда лучше просто распечатать предупреждение и выйти успешно.

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

Использование:

node_modules/.bin/jshint .; true

Или напишите оболочку, которая вызывает jshint, а затем игнорирует код выхода и успешно завершает код выхода с нулевым значением.