本文参考了 NPM 中文文档写作而成的
npm run-script 功能
运行 package.json 里面的 scripts
npm run-script 使用
npm run-script <command> [--silent][-- <args>...]
alias: npm run
npm run-script 说明
这将从包的 ”scripts” 对象运行任意命令。
如果未 “command” 提供,它将列出可用的脚本。
run[-script]
由测试,启动,重新启动和停止命令使用,但也可以直接调用。
打印软件包中的脚本后,它们将分为生命周期(测试,启动,重新启动)和直接运行的脚本。
从开始 npm@2.0.0
,您可以在执行脚本时使用自定义参数。特殊选项 - 由 getopt 用来分隔选项的结尾。npm 将 - 之后的所有参数直接传递给您的脚本:
npm run test -- --grep="pattern"
参数将仅传递到后面指定的脚本,npm run
而不会传递到任何前置或后置脚本。
该 env 脚本是一个特殊的内置命令,可用于列出运行时脚本可使用的环境变量。如果您的软件包中定义了“env”命令,它将优先于内置命令。
除了外壳的预先存在的 PATH,npm run 增加了 node_modules/.bin
对 PATH 提供给脚本。本地安装的依赖项提供的任何二进制文件都可以不带 node_modules/.bin
前缀使用。例如,如果包装中有 devDependencyon tap,则应输入:
"scripts": {"test": "tap test/\*.js"}
代替
"scripts": {"test": "node_modules/.bin/tap test/\*.js"}
运行测试。
您的脚本在其中运行的实际外壳取决于平台。默认情况下,在类似 Unix 的系统上,它是 /bin/sh 命令;在 Windows 上,它是命令 cmd.exe。所引用的实际 shell /bin/sh
也取决于系统。
从那时起,npm@5.1.0 您可以使用 script-shell 配置自定义外壳。
脚本从模块的根目录运行,而不管调用时当前的工作目录是什么 npm run。
如果您希望脚本根据您所在的子目录使用不同的行为,则可以使用 INIT_CWD 环境变量,该变量保存您运行时所在的完整路径 npm run。
npm run 将 NODE 环境变量设置为 node 可执行的可执行文件 npm。
另外,如果 --scripts-prepend-node-path
通过,则将 node 驻留的目录添加到中 PATH。
如果 --scripts-prepend-node-path=auto
通过了(这是 npmv3 中的默认值),则仅当在中 node 找不到该可执行文件时才执行此操作 PATH。
如果您尝试在没有 node_modules
目录的情况下运行脚本,
但脚本失败,则会警告您运行 npm install
,以防万一您忘记了。
您可以使用该 --silent
标志来防止 npm ERR! 错误显示输出。
您可以使用该 --if-present
标志来避免在脚本未定义时以非零的退出代码退出。
这使您可以运行可能未定义的脚本,而无需中断执行链。
本文参考 NPM 中文文档