npm-run-script

运行任意包脚本

概要

npm run-script <command> [--silent] [-- <args>...]
alias: npm run

描述

这会从包的 "scripts" 对象运行任意命令。 如果没有提供 "command",它将列出可用的脚本。 run[-script] 由 test、start、restart 和 stop 命令使用,但也可以直接调用。 当包中的脚本被打印出来时,它们被分为生命周期(测试、启动、重启)和直接运行的脚本。

npm@2.0.0 开始,你可以在执行脚本时使用自定义参数。 getopt 使用特殊选项 -- 来分隔选项的结尾。 npm 会将 -- 之后的所有参数直接传递给你的脚本:

npm run test -- --grep="pattern"

参数只会传递给之后指定的脚本 npm run 而不是任何前后脚本。

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 所指的实际外壳也取决于系统。 从 npm@5.1.0 开始,你可以使用 script-shell 配置自定义 shell。

脚本从模块的根目录运行,无论你调用 npm run 时当前的工作目录是什么。 如果你希望脚本根据你所在的子目录使用不同的行为,你可以使用 INIT_CWD 环境变量,它包含你在运行 npm run 时所在的完整路径。

npm runNODE 环境变量设置为执行 npmnode 可执行文件。 另外,如果通过了 --scripts-prepend-node-path,则将 node 所在的目录添加到 PATH。 如果通过了 --scripts-prepend-node-path=auto(这是 npm v3 中的默认设置),则仅当在 PATH 中找不到该 node 可执行文件时才会执行此操作。

如果你尝试在没有 node_modules 目录的情况下运行脚本但它失败了,你将收到运行 npm install 的警告,以防你忘记了。

你可以使用 --silent 标志来防止在错误时显示 npm ERR! 输​​出。

当脚本未定义时,你可以使用 --if-present 标志来避免以非零退出代码退出。 这使你可以在不中断执行链的情况下运行可能未定义的脚本。

也可以看看

npm 中文网 - 粤ICP备13048890号