npm package.json脚本没有被调用
我在我的项目package.json中有以下脚本部分:
"scripts": { "seed": "node bin/seed", "test": "echo \"Error: no test specified\" && exit 1" },
如果我运行$ npm test
我得到这个:
>npm test > node-mongo-seeds@0.0.1 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 npm@1.4.3 C:\Program Files\nodejs\node_modules\npm
为什么它识别我的test
脚本而不是我的seed
脚本?
编辑
当我尝试npm run-script seed
我得到这个预期的错误,因为我不通过一个-d
参数:
$ npm run-script seed > node-mongo-seeds@0.0.1 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! node-mongo-seeds@0.0.1 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 npm@1.4.3 npm info using node@v0.10.26 npm ERR! Error: ENOENT, open 'C:\Users\m089269\WebstormProjects\node-mongo-seeds\node_modules\seed\package.json' ...
为什么在node_modules \ seed中寻找package.json? 种子甚至不是一个依赖。
从文档 :
npm支持package.json脚本的“脚本”成员,用于以下脚本:
- 预发布:在包发布之前运行。 (也可以在没有任何参数的情况下在本地
npm install
上npm install
。)- 发布,发布后:在包发布后运行。
- 预安装:在安装软件包之前运行
- 安装,安装后:在安装软件包后运行。
- preuninstall,卸载:在卸载软件包之前运行。
- postuninstall:卸载软件包后运行。
- preupdate:使用update命令更新包之前运行。
- 更新,postupdate:在更新命令后更新包后运行。
- 预testing,testing,后测:由
npm test
命令运行。- prestop,stop,poststop:由
npm stop
命令运行。- prestart,start,poststart:由
npm start
命令运行。- prerestart,restart,postrestart:由
npm restart
命令运行。 注意:如果没有提供restart
脚本,npm restart
将运行stop和start脚本。另外,可以通过执行
npm run-script <stage> <pkg>
来运行任意脚本。
你可以看到你的npm test
脚本工作原因是npm test
是一个内置的命令。 如果要执行不由内置npm命令执行的脚本,则必须使用npm run-script
。
在package.json中声明的自定义脚本可以在你的shell中使用npm run <your-script>
formsnpm run <your-script>
。
试试npm run seed
或npm run test