npm脚本执行与依赖查看
npm脚本是项目自动化的入口,依赖树查看是排查问题的关键手段。
npm run执行脚本
基本用法
JSON
{
"scripts": {
"build": "webpack --mode production",
"lint": "eslint src/"
}
}
Bash
npm run build
npm run lint
查看所有可用脚本
Bash
npm run
输出package.json中所有scripts条目。
传递参数
Bash
# 通过--向脚本传参
npm run lint -- --fix
实际执行:eslint src/ --fix。
脚本中使用环境变量
JSON
{
"scripts": {
"dev": "NODE_ENV=development node server.js"
}
}
Windows下直接使用
NODE_ENV=xxx语法不生效,需借助cross-env包实现跨平台环境变量设置。
npm start与npm test
npm start
JSON
{
"scripts": {
"start": "node server.js"
}
}
Bash
# 以下两条命令等价
npm start
npm run start
若未定义start脚本,NPM默认执行node server.js。
npm test
JSON
{
"scripts": {
"test": "jest --coverage"
}
}
Bash
npm test
# 等价于
npm run test
start、test、stop、restart是NPM内置脚本,执行时可直接省略run。
npm list查看依赖树
基本用法
Bash
# 查看当前项目依赖树
npm list
# 查看全局安装的包
npm list -g
# 只看顶层依赖
npm list --depth=0
查看指定包的依赖路径
Bash
npm list lodash
输出示例:
Bash
my-project@1.0.0
└── lodash@4.17.21
查看包的安装路径
text
npm root
# 输出:/path/to/project/node_modules
大型项目依赖树层级深,
npm list输出可能很长,推荐使用--depth=0仅查看顶层依赖。
要点总结
- 自定义脚本用
npm run <name>执行,内置脚本(start/test/stop/restart)可省略run - 向脚本传参使用
--分隔,如npm run build -- --watch npm list --depth=0查看顶层依赖,npm list <pkg>查看指定包路径- Windows环境下设置环境变量建议使用cross-env包