webentwicklung-frage-antwort-db.com.de

npm package.json-Skripts werden nicht aufgerufen

In meinen Projekten package.json gibt es folgende Skripts:

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

Wenn ich $ npm test starte, bekomme ich folgendes:

>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

Wenn ich $ npm seed starte, bekomme ich folgendes:

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

Warum erkennt es mein test-Skript, aber nicht mein seed-Skript?

EDIT

Wenn ich npm run-script seed versuche, erhalte ich diese Fehlermeldung, die erwartet wird, weil ich keinen -d param übergeben habe:

$ 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
...

Wenn ich npm run-script seed -d "localhost/ease" versuche, erhalte ich diese Fehlermeldung. 

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'
...

Warum sucht es nach einem package.json in node_modules\seed? Seed ist nicht einmal eine Abhängigkeit.

26
Catfish

Aus der Dokumentation :

npm unterstützt das Mitglied "scripts" des package.json-Skripts für die folgenden Skripts:

  • prepublish: Führen Sie VOR der Veröffentlichung des Pakets aus. (Kann auch auf dem lokalen npm install ohne Argumente ausgeführt werden.)
  • publish, Postpublish: Wird ausgeführt, nachdem das Paket veröffentlicht wurde.
  • vorinstallieren: Vor der Installation des Pakets ausführen
  • install, postinstall: Nach der Installation des Pakets ausführen.
  • preuninstall, uninstall: Ausführen, BEVOR das Paket deinstalliert wird.
  • postuninstall: Nach der Deinstallation des Pakets ausführen.
  • preupdate: Ausführen, BEVOR das Paket mit dem Aktualisierungsbefehl aktualisiert wird.
  • update, Postupdate: Ausführen, nachdem das Paket mit dem Aktualisierungsbefehl aktualisiert wurde.
  • pretest, Test, Posttest: Wird mit dem Befehl npm test ausgeführt.
  • prestop, stop, poststop: Wird mit dem Befehl npm stop ausgeführt.
  • prestart, start, poststart: Wird mit dem Befehl npm start ausgeführt.
  • prerestart, restart, postrestart: Wird mit dem Befehl npm restart ausgeführt. Hinweis: npm restart führt die Stopp- und Startskripts aus, wenn kein restart-Skript bereitgestellt wird.

Darüber hinaus können beliebige Skripts ausgeführt werden, indem npm run-script <stage> <pkg> ausgeführt wird.

Der Grund für die Funktionsweise Ihres npm test-Skripts ist, dass npm test ein integrierter Befehl ist. Sie müssen npm run-script verwenden, wenn Sie ein Skript ausführen möchten, das nicht von einem integrierten npm-Befehl ausgeführt wird.

56
Tim Cooper

In package.json deklarierte benutzerdefinierte Skripts können mit dem Formular npm run <your-script> in Ihrer Shell ausgeführt werden.

Versuchen Sie npm run seed oder npm run test

11
Joseph Wright

Um die benutzerdefinierten Skripts in package.json auszuführen, verwenden Sie unten 

npm Run-Script Seed

oder

npm run-script <benutzerdefiniertes Skript>

oder du kannst verwenden

npm run <benutzerdefiniertes Skript>

1
Vijay