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 installnpm 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 seednpm run test