运行package中的脚本
概要
npm run-script <command> [--silent] [-- <args>...]
alias: npm run
详情
这将会运行package中的"scripts"
对象中的指令。如果没有提供"指令"
, 它将会列出所有的脚本。 run[-script]
用 test, start, restart 和 stop 指令的时候,也可以直接使用。 当打印出package中的脚本时,它们将分为生命周期(test,start,restart)并直接运行的脚本。
在 npm@2.0.0
中, 您可以在执行脚本时使用自定义参数。特殊标志 --
用于分割选项的结尾。 npm将会传递所有在--
后面的参数
npm run test -- --grep="pattern"
参数只会传递给npm运行后指定的脚本,而不会传递给任何前置或后置脚本。
env
是一个特殊的内置命令,可用于列出在运行时中所有脚本可用的环境变量。如果一个"env" 指令在你的package中被定义, 他将会覆盖内置的env指令。
除了shell预先存在的PATH
, npm run
还将node_modules/.bin
加到了 PATH
中,提供给scripts使用。 本地安装的依赖二进制文件都可以在没有指定node_modules/.bin
的情况下被使用。例如, 如果你的package中有一个devDependency
是tap
,你可以用
"scripts": {"test": "tap test/*.js"}
代替
"scripts": {"test": "node_modules/.bin/tap test/*.js"}
去运行你的test。
脚本在其中运行的实际shell是依赖于平台的。默认情况下, Unix-like 操作系统是/bin/sh
指令, Windows 操作系统是cmd.exe
。 实际的被/bin/sh
引用的shell也依赖于平台。npm@5.1.0
你可以使用script-shell
自定义你的shell配置。
无论您在调用npm run
时当前的工作目录是什么,脚本都从模块的根目录运行。如果希望脚本根据您所在的子目录执行不同的行为, 你可以使用INIT_CWD
环境变量, 该变量保存着npm run
运行时的完整路径。
npm run
设置NODE
环境变量为执行npm
的node可执行文件路径。 如果--scripts-prepend-node-path
参数被传递,node
所在路径将会添加到PATH
。如果--scripts-prepend-node-path=auto
被传递(npm
v3中默认值),则只有在PATH中找不到 node
可执行文件才会执行此操作。
如果你尝试在没有node_modules
文件夹的情况下执行脚本并失败, 你将得到一个运行npm install
的提示,以防你忘记。
你可以使用--silent
去屏蔽npm ERR!
输出。
您可以使用 --if-present
标志来避免在未定义脚本时使用非0退出代码退出。这样可以在不破坏执行链的情况下运行可能未定义的脚本。
打赏 ⁽⁽ଘ(ˊᵕˋ)ଓ⁾⁾
![cff0d4e415421af07e1faa1f4e89eaf0.png](https://img-blog.csdnimg.cn/img_convert/cff0d4e415421af07e1faa1f4e89eaf0.png)