J'ai la section de scripts suivante dans mes projets package.json:
"scripts": {
"seed": "node bin/seed",
"test": "echo \"Error: no test specified\" && exit 1"
},
Si je lance $ npm test
je reçois ceci:
>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
Si je lance $ npm seed
, je reçois ceci:
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
Pourquoi reconnaît-il mon script test
mais pas mon script seed
?
MODIFIER
Quand j'essaie npm run-script seed
j'obtiens cette erreur, ce qui est attendu parce que je ne passe pas un param -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
...
Lorsque j'essaie npm run-script seed -d "localhost/ease"
, j'obtiens cette erreur.
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'
...
Pourquoi cherche-t-il un package.json dans node_modules\seed? Seed n'est même pas une dépendance.
De la documentation :
npm supporte le membre "scripts" du script package.json, pour les scripts suivants:
- prepublish: Exécuter AVANT la publication du package. (Exécute également sur
npm install
local sans aucun argument.)- publier, post-publier: Exécuter APRES la publication du paquet.
- preinstall: Exécuter AVANT que le paquet soit installé
- install, postinstall: Exécuter APRES que le paquet soit installé.
- préinstallez, désinstallez: Exécuter AVANT que le paquet soit désinstallé.
- postuninstall: Exécuter APRES la désinstallation du paquet.
- preupdate: Exécuter AVANT que le paquet soit mis à jour avec la commande update.
- update, postupdate: Exécutez APRÈS que le paquet soit mis à jour avec la commande update.
- prétest, test, posttest: exécuté par la commande
npm test
.- prestop, stop, poststop: exécuté par la commande
npm stop
.- prestart, start, poststart: exécuté par la commande
npm start
.- prerestart, restart, postrestart: exécuté par la commande
npm restart
. Remarque:npm restart
exécutera les scripts d'arrêt et de démarrage si aucun scriptrestart
n'est fourni.De plus, des scripts arbitraires peuvent être exécutés en faisant
npm run-script <stage> <pkg>
.
Vous pouvez voir que la raison pour laquelle votre script npm test
fonctionne est que npm test
est une commande intégrée. Vous devez utiliser npm run-script
si vous souhaitez exécuter un script qui n'est pas exécuté par une commande intégrée npm.
Les scripts personnalisés déclarés dans package.json peuvent être exécutés avec le formulaire npm run <your-script>
dans votre shell.
Essayez npm run seed
ou npm run test
Pour exécuter les scripts personnalisés dans package.json, utilisez ci-dessous
npm run-script seed
ou
npm run-script <script personnalisé>
ou vous pouvez utiliser
npm run <script personnalisé>