web-dev-qa-db-fra.com

les scripts npm package.json ne sont pas appelés

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.

26
Catfish

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 script restart 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.

56
Tim Cooper

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

11
Joseph Wright

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é>

1
Vijay