web-dev-qa-db-ja.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スクリプトを認識しないのはなぜですか?

[〜#〜] edit [〜#〜]

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

Node_modules\seedでpackage.jsonを探しているのはなぜですか? Seedは依存関係でもありません。

28
Catfish

ドキュメント から:

npmは、次のスクリプトについて、package.jsonスクリプトの「scripts」メンバーをサポートします。

  • prepublish:パッケージが公開される前に実行します。 (引数なしでローカルnpm installでも実行します。)
  • 準備:パッケージをパックして公開する前、ローカルnpm installで引数なしで実行し、git依存関係をインストールするときに実行します(以下を参照)。これはprepublishの後で実行されますが、prepublishOnlyの前に実行されます。
  • prepublishOnly:パッケージが準備およびパックされる前に、npm publishでのみ実行します。
  • prepack:tarballがパックされる前に実行します(npm packnpm publish、およびgit依存関係のインストール時)。
  • postpack:tarballが生成され、最終目的地に移動された後に実行します。

  • 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コマンドで実行します。注:restartスクリプトが提供されていない場合、npm restartは停止および開始スクリプトを実行します。

さらに、npm run-script <stage> <pkg>を実行することにより、任意のスクリプトを実行できます。

npm testスクリプトが機能する理由は、npm testが組み込みコマンドであるためです。組み込みのnpmコマンドによって実行されないスクリプトを実行する場合は、npm run-scriptを使用する必要があります。

61
Tim Cooper

Package.jsonで宣言されたカスタムスクリプトは、npm run <your-script>シェルのフォーム。

npm run seedまたはnpm run test

17
Joseph Wright

以下を使用してpackage.jsonのカスタムスクリプトを実行するには

npm run-script seed

または

npm run-script<カスタムスクリプト>

またはあなたが使用することができます

npm run<カスタムスクリプト>

2
Vijay