npm run 用于执行 package.json 中 scripts 字段定义的自定义脚本,通过键名调用对应命令;支持本地 bin 工具、shell 命令及参数透传;预设 pre/post 钩子自动触发,运行 npm run 可查看全部脚本。

在 npm 项目中,npm run 是执行 package.json 中定义的自定义脚本的核心命令,它不直接运行系统命令,而是查找并调用 "scripts" 字段下的对应键名。
如何定义可执行的脚本
打开项目的 package.json,在 "scripts" 对象中添加键值对:
- 键(key)是脚本名称,比如
"build"、"dev"、"test" - 值(value)是实际要执行的命令,支持 Node.js 内置命令、已安装的本地 bin 工具(如
webpack、eslint)、或带参数的 shell 命令
示例:
{ "scripts": { "dev": "node server.js", "build": "tsc && rollup -c", "lint": "eslint src/", "pretest": "npm run lint", "test": "jest" } }如何运行脚本
在项目根目录下运行:
立即学习“Java免费学习笔记(深入)”;
-
npm run dev→ 执行"dev": "node server.js" -
npm run build→ 先运行 TypeScript 编译,再执行 Rollup 打包 -
npm test→ 这是 npm 的快捷别名,等价于npm run test -
npm run lint -- --fix→ 向脚本传递额外参数(--后的内容会透传给命令)
预设钩子(pre/post 脚本)自动触发
npm 会自动识别以 pre 或 post 开头的脚本名,并在对应主脚本前后执行:
-
"pretest"在npm test前运行 -
"postbuild"在npm run build成功后运行 - 注意:这些钩子只对
npm run xxx或其别名(如npm test)生效,不会对任意命名的脚本自动触发
查看所有可用脚本
运行以下命令可列出 package.json 中全部脚本(含内置和自定义):
-
npm run(不带参数)→ 显示带颜色的脚本列表 -
npm run --silent→ 纯文本输出,适合脚本中解析


















