it-roy-ru.com

скрипты npm package.json не вызываются

У меня есть следующий раздел сценариев в моих проектах package.json:

"scripts": {
    "seed": "node bin/seed",
    "test": "echo \"Error: no test specified\" && exit 1"
  },

Если я запускаю $ npm test, я получаю это:

>npm test

> [email protected] test C:\Users\m089269\WebstormProjects\node-mongo-seeds
> echo "Error: no test specified" && exit 1

"Error: no test specified"
npm ERR! Test failed.  See above for more details.
npm ERR! not ok code 0

Если я запускаю $ npm seed, я получаю это:

npm seed

Usage: npm <command>

where <command> is one of:
    add-user, adduser, apihelp, author, bin, bugs, c, cache,
    completion, config, ddp, dedupe, deprecate, docs, edit,
    explore, faq, find, find-dupes, get, help, help-search,
    home, i, info, init, install, isntall, issues, la, link,
    list, ll, ln, login, ls, outdated, owner, pack, prefix,
    Prune, publish, r, rb, rebuild, remove, repo, restart, rm,
    root, run-script, s, se, search, set, show, shrinkwrap,
    star, stars, start, stop, submodule, tag, test, tst, un,
    uninstall, unlink, unpublish, unstar, up, update, v,
    version, view, whoami

npm <cmd> -h     quick help on <cmd>
npm -l           display full usage info
npm faq          commonly asked questions
npm help <term>  search for help on <term>
npm help npm     involved overview

Specify configs in the ini-formatted file:
    C:\Users\m089269\.npmrc
or on the command line via: npm <command> --key value
Config info can be viewed via: npm help config

[email protected] C:\Program Files\nodejs\node_modules\npm

Почему он распознает мой скрипт test, а не мой скрипт seed?

ПРАВКА

Когда я пытаюсь npm run-script seed, я получаю эту ошибку, которая ожидается, потому что я не передаю -d параметр:

$ npm run-script seed

> [email protected] seed C:\Users\m089269\WebstormProjects\node-mongo-seeds
> node bin/seed

Populate mongo from a set of .json files.
 Usage: $ node seed

Options:
  -d  The path to your mongo db  [required]

Missing required arguments: d

npm ERR! [email protected] seed: `node bin/seed`
npm ERR! Exit status 1
...

Когда я пытаюсь npm run-script seed -d "localhost/ease", я получаю эту ошибку. 

npm run-script seed -d localhost/ease-dev
npm info it worked if it ends with ok
npm info using [email protected]
npm info using [email protected]
npm ERR! Error: ENOENT, open 'C:\Users\m089269\WebstormProjects\node-mongo-seeds\node_modules\seed\package.json'
...

Почему он ищет package.json в node_modules\seed? Seed даже не является зависимостью.

26
Catfish

Из документации :

npm поддерживает член «scripts» скрипта package.json для следующих скриптов:

  • prepublish: запустить ДО публикации пакета. (Также запустите локальный npm install без каких-либо аргументов.)
  • publish, postpublish: запустить ПОСЛЕ опубликования пакета.
  • preinstall: запустить до установки пакета
  • install, postinstall: Запустите ПОСЛЕ установки пакета.
  • preuninstall, uninstall: запустить ДО того, как пакет будет удален.
  • postuninstall: Запустите ПОСЛЕ удаления пакета.
  • preupdate: запускается ДО обновления пакета с помощью команды update.
  • update, postupdate: запустить ПОСЛЕ обновления пакета командой update.
  • pretest, test, posttest: Запускается командой npm test.
  • prestop, stop, poststop: запустить командой npm stop.
  • prestart, start, poststart: запускается командой npm start.
  • prerestart, restart, postrestart: запускается командой npm restart. Примечание: npm restart запустит сценарии остановки и запуска, если сценарий restart не предоставлен.

Кроме того, произвольные сценарии могут быть запущены с помощью npm run-script <stage> <pkg>.

Вы можете увидеть причину, по которой ваш скрипт npm test работает, потому что npm test является встроенной командой. Вы должны использовать npm run-script, если вы хотите выполнить скрипт, который не выполняется встроенной командой npm.

56
Tim Cooper

Пользовательские сценарии, объявленные в package.json, можно запускать с помощью формы npm run <your-script> в вашей командной консоли.

Попробуйте npm run seed или npm run test

11
Joseph Wright

Для выполнения пользовательских скриптов в package.json используйте ниже 

npm run-script seed

или же

скрипт запуска npm <пользовательский скрипт>

или вы можете использовать

npm run <пользовательский скрипт>

1
Vijay