npm8中文文档
这会从包的 "scripts"
对象运行任意命令。如果没有提供 "command"
,它将列出可用的脚本。
run[-script]
由 test、start、restart 和 stop 命令使用,但也可以直接调用。当包中的脚本被打印出来时,它们被分为生命周期(测试、启动、重启)和直接运行的脚本。
任何位置参数都会传递给指定的脚本。使用 --
传递以 -
为前缀的标志和选项,否则它们会被 npm 解析。
例如:
npm run test -- --grep="pattern"
参数只会传递给 npm run
之后指定的脚本,而不是任何 pre
或 post
脚本。
env
脚本是一个特殊的内置命令,可用于列出脚本在运行时可用的环境变量。如果您的包中定义了 "env" 命令,它将优先于内置命令。
除了 shell 预先存在的 PATH
之外,npm run
还将 node_modules/.bin
添加到提供给脚本的 PATH
中。本地安装的依赖项提供的任何二进制文件都可以在没有 node_modules/.bin
前缀的情况下使用。例如,如果你的包中 tap
上有一个 devDependency
,你应该写:
"scripts": {"test": "tap test/*.js"}
代替
"scripts": {"test": "node_modules/.bin/tap test/*.js"}
运行脚本的实际 shell 取决于平台。默认情况下,在类 Unix 系统上是 /bin/sh
命令,在 Windows 上是 cmd.exe
。/bin/sh
所指的实际外壳也取决于系统。您可以使用 script-shell
配置自定义 shell。
脚本从包文件夹的根目录运行,无论调用 npm run
时当前工作目录是什么。如果您希望脚本根据您所在的子目录使用不同的行为,您可以使用 INIT_CWD
环境变量,它包含您在运行 npm run
时所在的完整路径。
npm run
将 NODE
环境变量设置为执行 npm
的 node
可执行文件。
如果您尝试在没有 node_modules
目录的情况下运行脚本但它失败了,您将收到运行 npm install
的警告,以防您忘记了。