npm常用命令
# npm 常用命令
# 目录
# 简介
npm (Node Package Manager) 是跟随 Node.js 一起安装的包管理器。常见的使用场景有以下几种:
- 允许用户从 npm 服务器下载别人编写的第三方包到本地使用
- 允许用户从 npm 服务器下载并安装别人编写的命令行程序到本地使用
- 允许用户将自己编写的包或命令行程序上传到 npm 服务器供别人使用
- 管理项目依赖和脚本
# 基础命令
# 检测版本
npm -v # 显示npm版本号
npm version # 显示npm、node和系统信息
1
2
2
# 初始化项目
npm init # 交互式创建package.json
npm init -y # 使用默认值快速创建package.json
npm init <package-name> # 基于某个包创建项目
1
2
3
2
3
package.json 用来描述项目中用到的模块、脚本和其他项目信息
# 包管理命令
# 安装模块
# 基础安装
npm install # 安装package.json中定义的所有依赖,简写 npm i
npm i <package-name> # 安装指定包
# 全局安装
npm i <package-name> -g # 全局安装包
# 开发依赖
npm i <package-name> --save-dev # 简写 -D,安装为开发依赖
npm i <package-name> -D # 同上
# 生产依赖(npm 5+ 默认行为)
npm i <package-name> --save # 简写 -S,安装为生产依赖
npm i <package-name> -S # 同上
# 精确版本安装
npm i <package-name> --save-exact # 安装精确版本,不使用 ^ 符号
# 安装多个包
npm i <package1> <package2> <package3>
# 安装指定版本
npm i <package-name>@<version>
npm i <package-name>@latest # 安装最新版本
npm i <package-name>@next # 安装预发布版本
# 日志级别控制
npm i <package-name> --loglevel=error # 只显示错误信息
npm i <package-name> --loglevel=warn # 显示警告和错误
npm i <package-name> --loglevel=info # 显示信息、警告和错误(默认)
npm i <package-name> --loglevel=verbose # 显示详细信息
npm i <package-name> --loglevel=silly # 显示所有信息,包括调试信息
# 简写形式
npm i <package-name> --silent # 静默模式,不显示进度条
npm i <package-name> --quiet # 安静模式,只显示错误
npm i <package-name> --verbose # 详细模式
npm i <package-name> --progress # 显示进度条(默认)
npm i <package-name> --no-progress # 隐藏进度条
# 调试模式
npm i <package-name> --debug # 显示调试信息
npm i <package-name> --timing # 显示安装时间统计
npm i <package-name> --json # 以JSON格式输出日志
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# 查看包信息
# 查看已安装的包
npm ls # 查看本地项目安装的包
npm ls -g # 查看全局安装的包
npm ls <package-name> # 查看指定包的版本
# 查看包信息
npm view <package-name> # 查看包的package.json信息
npm info <package-name> # 同上
npm show <package-name> # 同上
# 查看包的详细信息
npm view <package-name> dependencies # 查看包的依赖关系
npm view <package-name> repository.url # 查看包的源码地址
npm view <package-name> engines # 查看包要求的node版本
npm view <package-name> versions # 查看包的所有版本
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 更新模块
# 更新包
npm update <package-name> # 更新本地包
npm update -g <package-name> # 更新全局包
npm update -g # 更新所有全局包
# 检查过时的包
npm outdated # 检查本地过时的包
npm outdated -g # 检查全局过时的包
npm outdated -g --depth=0 # 只检查顶级包
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
# 卸载模块
npm uninstall <package-name> # 卸载本地包,简写 npm un
npm un <package-name> # 同上
npm remove <package-name> # 同上
npm uninstall -g <package-name> # 卸载全局包
1
2
3
4
5
2
3
4
5
# 缓存管理
npm cache clean --force # 强制清空缓存(推荐)
npm cache clean -f # 同上
npm cache verify # 验证缓存完整性
1
2
3
2
3
# 脚本命令
# 运行脚本
npm run <script-name> # 运行package.json中定义的脚本
npm run # 列出所有可用的脚本
npm start # 运行start脚本(npm run start的简写)
npm test # 运行test脚本(npm run test的简写)
npm stop # 运行stop脚本
npm restart # 运行restart脚本
1
2
3
4
5
6
2
3
4
5
6
# 常用脚本示例
{
"scripts": {
"start": "node index.js",
"dev": "nodemon index.js",
"build": "webpack --mode production",
"test": "jest",
"lint": "eslint src/",
"format": "prettier --write src/"
}
}
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
# 配置命令
# 查看和设置配置
# 查看配置
npm config list # 查看所有配置
npm config get <key> # 查看指定配置项
npm config get registry # 查看当前镜像源
# 设置配置
npm config set <key> <value> # 设置配置项
npm config set registry https://registry.npmjs.org/ # 设置官方源
# 删除配置
npm config delete <key> # 删除配置项
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
# 常用配置项
# 设置镜像源
npm config set registry https://registry.npmjs.org/ # 官方源
npm config set registry https://registry.npmmirror.com/ # 淘宝源(新)
# 设置代理
npm config set proxy http://proxy.company.com:8080
npm config set https-proxy http://proxy.company.com:8080
# 设置超时时间
npm config set timeout 60000
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
# 发布相关
# 登录和发布
npm login # 登录npm账号
npm logout # 退出登录
npm whoami # 查看当前登录用户
npm publish # 发布包
npm publish --access public # 发布为公共包
npm unpublish <package>@<version> # 撤销发布(72小时内)
1
2
3
4
5
6
7
2
3
4
5
6
7
# 包管理
npm search <keyword> # 搜索包
npm view <package-name> # 查看包信息
npm outdated # 检查过时的包
1
2
3
2
3
# 镜像源管理
# 使用nrm管理镜像源
nrm (npm registry manager) 是npm的镜像源管理工具,可以快速切换不同的npm源。
# 安装nrm
npm install -g nrm
1
# nrm命令
nrm ls # 查看可用的源(*号表示当前使用的源)
nrm use <registry> # 切换到指定源
nrm add <registry> <url> # 添加自定义源
nrm del <registry> # 删除源
nrm test <registry> # 测试源的响应时间
nrm help # 查看帮助
nrm home <registry> # 跳转到指定源的官网
1
2
3
4
5
6
7
2
3
4
5
6
7
# 常用镜像源
nrm use npm # 官方源
nrm use taobao # 淘宝源
nrm use cnpm # 中国npm源
nrm use yarn # Yarn源
1
2
3
4
2
3
4
# 直接设置镜像源
# 设置淘宝镜像源(推荐)
npm config set registry https://registry.npmmirror.com/
# 设置官方源
npm config set registry https://registry.npmjs.org/
# 临时使用镜像源
npm install <package> --registry=https://registry.npmmirror.com/
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
# 日志和调试
# 查看npm日志
# 查看npm日志文件
npm logs # 查看当前包的日志
npm logs <package-name> # 查看指定包的日志
# 查看全局日志
npm logs -g # 查看全局安装的包日志
# 日志文件位置
# macOS/Linux: ~/.npm/_logs/
# Windows: %AppData%/npm-cache/_logs/
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
# 日志级别说明
# 日志级别从低到高
error # 只显示错误信息
warn # 显示警告和错误
info # 显示信息、警告和错误(默认)
verbose # 显示详细信息
silly # 显示所有信息,包括调试信息
1
2
3
4
5
6
2
3
4
5
6
# 实用日志命令
# 查看npm配置
npm config list --loglevel=verbose
# 查看安装过程详细信息
npm install --loglevel=verbose
# 查看错误详情
npm install --loglevel=error
# 保存日志到文件
npm install --loglevel=verbose > install.log 2>&1
# 查看特定包的安装信息
npm view <package-name> --json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
# 使用技巧
# 解决安装问题
# 清除缓存后重新安装
npm cache clean --force
npm install
# 删除node_modules和package-lock.json后重新安装
rm -rf node_modules package-lock.json
npm install
# 使用--legacy-peer-deps解决依赖冲突
npm install --legacy-peer-deps
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
# 版本管理
# 查看已安装的精确版本
npm ls <package-name>
# 安装精确版本
npm install <package-name> --save-exact
# 更新到最新版本
npm install <package-name>@latest
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
# 安全相关
# 检查安全漏洞
npm audit # 检查依赖中的安全漏洞
npm audit fix # 自动修复安全漏洞
npm audit fix --force # 强制修复(可能破坏依赖)
# 查看包信息
npm view <package-name> homepage # 查看包主页
npm view <package-name> bugs # 查看问题反馈地址
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
# 现代包管理工具对比
# npm vs yarn vs pnpm
特性 | npm | yarn | pnpm |
---|---|---|---|
安装速度 | 较慢 | 快 | 最快 |
磁盘空间 | 占用多 | 占用多 | 占用少 |
锁文件 | package-lock.json | yarn.lock | pnpm-lock.yaml |
离线模式 | 支持 | 支持 | 支持 |
工作空间 | 支持 | 支持 | 原生支持 |
# 迁移建议
# 从npm迁移到yarn
yarn import # 从package-lock.json生成yarn.lock
# 从npm迁移到pnpm
pnpm import # 从package-lock.json生成pnpm-lock.yaml
1
2
3
4
5
2
3
4
5
# 常见问题
# Q: 为什么安装很慢?
A: 可以切换到国内镜像源:
npm config set registry https://registry.npmmirror.com/
1
# Q: 如何处理依赖冲突?
A: 使用以下命令:
npm install --legacy-peer-deps
# 或者
npm install --force
1
2
3
2
3
# Q: package-lock.json的作用?
A: 锁定依赖的精确版本,确保团队成员使用相同的依赖版本。
# Q: 如何查看包的详细信息?
A: 使用以下命令:
npm view <package-name>
npm info <package-name>
1
2
2
# Q: 如何查看npm安装的详细日志?
A: 使用以下命令:
npm install --loglevel=verbose # 显示详细信息
npm install --loglevel=silly # 显示所有信息
npm logs # 查看历史日志
1
2
3
2
3
# Q: 如何保存安装日志到文件?
A: 使用重定向:
npm install --loglevel=verbose > install.log 2>&1
1
# Q: 安装时出现错误,如何获取更多调试信息?
A: 使用以下命令:
npm install --debug # 显示调试信息
npm install --timing # 显示时间统计
npm cache verify # 验证缓存完整性
1
2
3
2
3
# 相关资源
编辑 (opens new window)
上次更新: 2025/07/24, 2:07:00