Kc's blog Kc's blog
首页
分类
标签
Timeline
收藏夹
关于
GitHub (opens new window)

kcqingfeng

前端小学生
首页
分类
标签
Timeline
收藏夹
关于
GitHub (opens new window)
  • 实操

  • 技巧

    • Git提交规范参考
    • Git使用手册
    • Markdown使用教程
    • npm常用命令
      • 目录
      • 简介
      • 基础命令
        • 检测版本
        • 初始化项目
      • 包管理命令
        • 安装模块
        • 查看包信息
        • 更新模块
        • 卸载模块
        • 缓存管理
      • 脚本命令
        • 运行脚本
        • 常用脚本示例
      • 配置命令
        • 查看和设置配置
        • 常用配置项
      • 发布相关
        • 登录和发布
        • 包管理
      • 镜像源管理
        • 使用nrm管理镜像源
        • 直接设置镜像源
      • 日志和调试
        • 查看npm日志
        • 日志级别说明
        • 实用日志命令
      • 使用技巧
        • 解决安装问题
        • 版本管理
        • 安全相关
      • 现代包管理工具对比
        • npm vs yarn vs pnpm
        • 迁移建议
      • 常见问题
        • Q: 为什么安装很慢?
        • Q: 如何处理依赖冲突?
        • Q: package-lock.json的作用?
        • Q: 如何查看包的详细信息?
        • Q: 如何查看npm安装的详细日志?
        • Q: 如何保存安装日志到文件?
        • Q: 安装时出现错误,如何获取更多调试信息?
      • 相关资源
    • 浏览器的调试
    • nrm详解
    • openvpn安装和使用
    • adb操作记录
    • 谷歌浏览器设置跨域配置
    • nodejs全局代理服务器
    • yaml语言教程
    • Git修改分支名
  • github
  • 技巧
kc_shen
2019-12-25
目录

npm常用命令

# npm 常用命令

# 目录

  • 简介
  • 基础命令
  • 包管理命令
  • 脚本命令
  • 配置命令
  • 发布相关
  • 镜像源管理
  • 日志和调试
  • 使用技巧
  • 现代包管理工具对比

# 简介

npm (Node Package Manager) 是跟随 Node.js 一起安装的包管理器。常见的使用场景有以下几种:

  • 允许用户从 npm 服务器下载别人编写的第三方包到本地使用
  • 允许用户从 npm 服务器下载并安装别人编写的命令行程序到本地使用
  • 允许用户将自己编写的包或命令行程序上传到 npm 服务器供别人使用
  • 管理项目依赖和脚本

# 基础命令

# 检测版本

npm -v          # 显示npm版本号
npm version     # 显示npm、node和系统信息
1
2

# 初始化项目

npm init                    # 交互式创建package.json
npm init -y                 # 使用默认值快速创建package.json
npm init <package-name>     # 基于某个包创建项目
1
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

# 查看包信息

# 查看已安装的包
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

# 更新模块

# 更新包
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

# 卸载模块

npm uninstall <package-name>     # 卸载本地包,简写 npm un
npm un <package-name>            # 同上
npm remove <package-name>        # 同上

npm uninstall -g <package-name>  # 卸载全局包
1
2
3
4
5

# 缓存管理

npm cache clean --force      # 强制清空缓存(推荐)
npm cache clean -f           # 同上
npm cache verify             # 验证缓存完整性
1
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

# 常用脚本示例

{
  "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

# 配置命令

# 查看和设置配置

# 查看配置
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

# 常用配置项

# 设置镜像源
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

# 发布相关

# 登录和发布

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

# 包管理

npm search <keyword>         # 搜索包
npm view <package-name>      # 查看包信息
npm outdated                 # 检查过时的包
1
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

# 常用镜像源

nrm use npm                 # 官方源
nrm use taobao              # 淘宝源
nrm use cnpm                # 中国npm源
nrm use yarn                # Yarn源
1
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

# 日志和调试

# 查看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

# 日志级别说明

# 日志级别从低到高
error     # 只显示错误信息
warn      # 显示警告和错误
info      # 显示信息、警告和错误(默认)
verbose   # 显示详细信息
silly     # 显示所有信息,包括调试信息
1
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

# 使用技巧

# 解决安装问题

# 清除缓存后重新安装
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

# 版本管理

# 查看已安装的精确版本
npm ls <package-name>

# 安装精确版本
npm install <package-name> --save-exact

# 更新到最新版本
npm install <package-name>@latest
1
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

# 现代包管理工具对比

# 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

# 常见问题

# Q: 为什么安装很慢?

A: 可以切换到国内镜像源:

npm config set registry https://registry.npmmirror.com/
1

# Q: 如何处理依赖冲突?

A: 使用以下命令:

npm install --legacy-peer-deps
# 或者
npm install --force
1
2
3

# Q: package-lock.json的作用?

A: 锁定依赖的精确版本,确保团队成员使用相同的依赖版本。

# Q: 如何查看包的详细信息?

A: 使用以下命令:

npm view <package-name>
npm info <package-name>
1
2

# Q: 如何查看npm安装的详细日志?

A: 使用以下命令:

npm install --loglevel=verbose    # 显示详细信息
npm install --loglevel=silly      # 显示所有信息
npm logs                          # 查看历史日志
1
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

# 相关资源

  • npm官方文档 (opens new window)
  • npm发布包教程 (opens new window)
  • package.json字段说明 (opens new window)
编辑 (opens new window)
#npm#nodejs#包管理
上次更新: 2025/07/24, 2:07:00
Markdown使用教程
浏览器的调试

← Markdown使用教程 浏览器的调试→

最近更新
01
nodejs全局代理服务器
07-23
02
谷歌浏览器设置跨域配置
07-23
03
记账心得
07-10
更多文章>
Theme by Vdoing | Copyright © 2019-2025 kc shen | MIT License 豫ICP备2024074563号-3
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式