Скрипты 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
script, но не мой seed
script?
ИЗМЕНИТЬ
Когда я пытаюсь 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? Семена даже не зависят.
Ответы
Ответ 1
Из документации:
npm поддерживает член "scripts" скрипта package.json для следующих скриптов:
- prepublish: запустить ДО публикации пакета. (Также запустите локальную
npm install
без каких-либо аргументов.) - prepare: Запускать оба ПО ДО того, как пакет будет упакован и опубликован, при локальной
npm install
без каких-либо аргументов и при установке git-зависимостей (см. ниже). Это выполняется ПОСЛЕ prepublish
, но ДО prepublishOnly
. - prepublishOnly: запуск ДО ТОГО, как пакет подготовлен и упакован, ТОЛЬКО на
npm publish
. - prepack: запустите ПРЕЖДЕ ЧЕМ упакованный архив (в
npm pack
npm publish
и при установке зависимостей git). -
postpack: Запустите ПОСЛЕ того, как тарбол будет сгенерирован и перемещен в конечный пункт назначения.
-
publish, postpublish: запустить ПОСЛЕ опубликования пакета.
- preinstall: запустить до установки пакета
- установить, после установки: запустить ПОСЛЕ установки пакета.
- preuninstall, uninstall: запустить ДО того, как пакет будет удален.
- postuninstall: Запустите ПОСЛЕ удаления пакета.
- preupdate: запускается ДО обновления пакета с помощью команды update.
- update, postupdate: запустить ПОСЛЕ обновления пакета командой update.
- pretest, test, posttest: Запускается командой
npm test
. - prestop, stop, poststop: запуск по команде
npm stop
. - prestart, start, poststart:
npm start
командой npm start
. - prerestart, restart, postrestart: запустить командой
npm restart
. Примечание: npm restart
запустит сценарии остановки и запуска, если сценарий restart
не предусмотрен.
Кроме того, произвольные сценарии можно запустить, выполнив npm run-script <stage> <pkg>
.
Вы можете увидеть причину, по которой ваш скрипт npm test
работает, потому что npm test
является встроенной командой. Вы должны использовать npm run-script
если хотите выполнить сценарий, который не выполняется встроенной командой npm.
Ответ 2
Пользовательские скрипты, объявленные в package.json, могут запускаться с формой npm run <your-script>
в вашей оболочке.
Попробуйте npm run seed
или npm run test
Ответ 3
Для выполнения пользовательских скриптов в package.json используйте ниже
npm run-script seed
или же
npm run-script <пользовательский скрипт>
или вы можете использовать
npm run <пользовательский скрипт>
Ответ 4
запустите curl -v https://registry.yarnpkg.com/react
это сработало для меня. источник: - Github Issues