私のプロジェクト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は依存関係でもありません。
ドキュメント から:
npmは、次のスクリプトについて、package.jsonスクリプトの「scripts」メンバーをサポートします。
- prepublish:パッケージが公開される前に実行します。 (引数なしでローカル
npm install
でも実行します。)- 準備:パッケージをパックして公開する前、ローカル
npm install
で引数なしで実行し、git依存関係をインストールするときに実行します(以下を参照)。これはprepublish
の後で実行されますが、prepublishOnly
の前に実行されます。- prepublishOnly:パッケージが準備およびパックされる前に、
npm publish
でのみ実行します。- prepack:tarballがパックされる前に実行します(
npm pack
、npm 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
を使用する必要があります。
Package.jsonで宣言されたカスタムスクリプトは、npm run <your-script>
シェルのフォーム。
npm run seed
またはnpm run test
以下を使用してpackage.jsonのカスタムスクリプトを実行するには
npm run-script seed
または
npm run-script<カスタムスクリプト>
またはあなたが使用することができます
npm run<カスタムスクリプト>