Skip to content

npm 包管理 ​

npm(Node Package Manager)是 Node.js 的包管理工具。

常用命令 ​

bash
npm init                    # 初始化项目,创建 package.json
npm install <pkg>           # 安装包
npm install <pkg> --save    # 安装并添加到 dependencies
npm install <pkg> --save-dev # 安装并添加到 devDependencies
npm install -g <pkg>        # 全局安装
npm update <pkg>            # 更新包
npm uninstall <pkg>         # 卸载包
npm run <script>            # 运行脚本
npm search <keyword>        # 搜索包
npm info <pkg>              # 查看包信息
npm list                    # 列出已安装的包
npm outdated                # 列出可更新的包
npm audit                   # 检查安全漏洞
npm publish                 # 发布包
npm login / npm logout      # 登录/注销
npm init                    # 初始化项目,创建 package.json
npm install <pkg>           # 安装包
npm install <pkg> --save    # 安装并添加到 dependencies
npm install <pkg> --save-dev # 安装并添加到 devDependencies
npm install -g <pkg>        # 全局安装
npm update <pkg>            # 更新包
npm uninstall <pkg>         # 卸载包
npm run <script>            # 运行脚本
npm search <keyword>        # 搜索包
npm info <pkg>              # 查看包信息
npm list                    # 列出已安装的包
npm outdated                # 列出可更新的包
npm audit                   # 检查安全漏洞
npm publish                 # 发布包
npm login / npm logout      # 登录/注销

配置 ​

bash
npm config list             # 列出所有配置
npm get registry            # 查看镜像源
npm set registry <url>      # 设置镜像源
npm config list             # 列出所有配置
npm get registry            # 查看镜像源
npm set registry <url>      # 设置镜像源

package.json ​

字段说明
name项目名称
version版本号(语义化:大版本.次版本.修订号)
description描述
main入口文件
scripts脚本命令
dependencies运行时依赖
devDependencies开发依赖
peerDependencies同版本依赖

npm install 原理 ​

安装流程 ​

  1. 检查 package-lock.json 是否有缓存
  2. 扁平化安装依赖到 node_modules
  3. 优先 .bin,再 @ 系列,按字母顺序
  4. 广度优先遍历依赖树

扁平化安装 ​

  • 理想状态:二级模块与一级模块版本相同,复用到一级
  • 非理想状态:版本不同,则嵌套安装到自己的 node_modules

package-lock.json ​

  • 锁定版本号
  • 记录依赖树详细信息(version、resolved、integrity)
  • 加速安装(通过 name + version + integrity 生成缓存 key)

npm run 原理 ​

  1. 读取 package.json 的 scripts 找到对应命令
  2. 先从 node_modules/.bin 查找可执行文件
  3. 没找到则去全局 node_modules 查找
  4. 再去环境变量查找

生命周期 ​

json
{
  "predev": "node prev.js",
  "dev": "node index.js",
  "postdev": "node post.js"
}
{
  "predev": "node prev.js",
  "dev": "node index.js",
  "postdev": "node post.js"
}

执行 npm run dev 时,predev → dev → postdev 依次自动执行。

npx ​

npx 用于执行 node 包中的可执行文件,无需全局安装。

优势:

  • 避免全局安装
  • 总是使用最新版本
  • 可执行任意 npm 包

示例:

bash
npx create-react-app my-app   # 无需全局安装脚手架
npx vite                      # 运行本地安装的 vite
npx create-react-app my-app   # 无需全局安装脚手架
npx vite                      # 运行本地安装的 vite

发布 npm 包 ​

  1. 编写模块代码
  2. npm login 登录
  3. npm publish 发布
  4. npm version <patch|minor|major> 更新版本