npm 常用操作和配置

发布于:2025-04-20 ⋅ 阅读:(15) ⋅ 点赞:(0)

一、npm 核心操作

1. 初始化项目
npm init          # 交互式创建 package.json
npm init -y       # 跳过提问,直接生成默认 package.json
2. 安装依赖
npm install <package>        # 安装包到本地 node_modules(生产依赖)
npm install <package> --save-dev  # 安装为开发依赖(devDependencies)
npm install -g <package>     # 全局安装(如命令行工具)
npm install                  # 根据 package.json 安装所有依赖
3. 卸载依赖
npm uninstall <package>      # 卸载本地包
npm uninstall -g <package>  # 卸载全局包
4. 更新依赖
npm update <package>        # 更新指定包
npm update                  # 更新所有包(根据 package.json 版本规则)
npm outdated                # 查看过时的包
5. 运行脚本
// package.json
{
  "scripts": {
    "start": "node app.js",
    "dev": "nodemon app.js",
    "test": "jest"
  }
}
npm run dev     # 运行自定义脚本(如开发模式)
npm start       # 直接运行 "start"(可省略 run)
npm test        # 运行测试

二、配置管理

1. 全局配置
npm config list              # 查看当前配置
npm config set <key> <value> # 修改配置(持久化到 ~/.npmrc)

常用配置项

npm config set registry https://registry.npmmirror.com  # 国内镜像(淘宝源)
npm config set prefix ~/.npm-global    # 修改全局包安装路径
npm config set save-exact true         # 安装时精确版本(不添加 ^ 或 ~)
2. 项目级配置
  • package.json:定义项目元数据、依赖和脚本。
  • .npmrc:项目级配置文件(优先级高于全局配置)。

三、依赖版本管理符号

符号 含义 示例
^1.2.3 允许更新次要版本和补丁 ^1.x.x
~1.2.3 仅允许更新补丁 ~1.2.x
1.2.3 严格锁定版本 精确匹配
latest 安装最新版本 自动更新

四、实用技巧

1. 快速安装所有依赖
npm ci  # 根据 package-lock.json 精确安装(适合 CI/CD 环境)
2. 清理缓存
npm cache clean --force  # 强制清理缓存
3. 查看包信息
npm view <package>       # 查看包详情
npm ls                   # 查看项目依赖树
npm ls -g --depth=0      # 查看全局安装的包
4. 安全审计
npm audit          # 检查依赖漏洞
npm audit fix      # 自动修复漏洞

五、常见问题

1. 权限问题(全局安装报错)
  • 解决方案
sudo npm install -g <package>  # 临时使用管理员权限
# 或修改全局安装目录权限
mkdir ~/.npm-global
npm config set prefix ~/.npm-global
2. 镜像加速
  • 临时使用镜像源
npm install <package> --registry=https://registry.npmmirror.com
  • 持久化配置
npm config set registry https://registry.npmmirror.com
3. 版本冲突
  • 使用 package-lock.jsonyarn.lock 锁定依赖版本。
4.npm install 和npm ci 的区别
用途
  • npm install:

用于安装项目中的依赖包。

可以在开发过程中使用,适用于添加、更新或删除依赖。

会根据 package.json 和 package-lock.json(如果存在)来安装依赖。

  • npm ci:

专门用于在持续集成(CI)环境中安装依赖。

假设项目的依赖是固定的,并且 package-lock.json 和 npm-shrinkwrap.json 文件已经存在且是最新的。

旨在实现快速、可靠和一致的依赖安装。

行为差异:依赖版本处理:
  • npm install:

如果没有 package-lock.json,会生成一个新的。

如果有 package-lock.json,会根据其中的版本信息安装依赖,但可能会更新 package-lock.json 中的一些信息(例如,如果依赖有更新)。

  • npm ci:

严格依赖 package-lock.json 或 npm-shrinkwrap.json 中的版本信息。

不会修改 package-lock.json,确保安装的依赖与锁文件中指定的版本完全一致。

安装速度:

npm ci 通常比 npm install 更快,因为它跳过了许多检查和更新步骤,直接安装锁文件中指定的版本。

清理 node_modules:

npm install:

默认情况下,不会删除现有的 node_modules 目录,只是更新或添加新的依赖。

npm ci:

总是先删除 node_modules 目录,然后重新安装所有依赖,确保环境是干净的。

使用场景
  • npm install:

适用于本地开发环境,当你需要添加、更新或删除依赖时使用。

适用于需要灵活处理依赖变化的场景。

  • npm ci:

适用于 CI/CD 管道,确保每次构建的环境都是一致的。

适用于需要快速、可靠安装依赖的场景,避免由于依赖变化导致的构建不一致问题。

总结
  • 选择 npm install

在开发过程中添加或更新依赖。

允许依赖版本有一定的灵活性。

  • 选择 npm ci

在 CI/CD 环境中确保依赖安装的一致性和可靠性。

快速安装依赖,避免不必要的检查和更新。



网站公告

今日签到

点亮在社区的每一天
去签到