当前位置: 首页 > backend >正文

npm 常用操作和配置


一、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 环境中确保依赖安装的一致性和可靠性。

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


http://www.xdnf.cn/news/376.html

相关文章:

  • uv:重新定义Python开发效率的下一代工具链
  • 高可靠 ZIP 压缩方案兼容 Office、PDF、TXT 和图片的二阶段回退机制
  • 【今日三题】打怪(模拟) / 字符串分类(字符串哈希) / 城市群数量(dfs)
  • Cril 截取字段-生成hostname
  • Git命令归纳
  • 少儿编程路线规划
  • Docker Overlay 网络的核心工作(以跨节点容器通信为例)
  • 公务员行测之速算分数记忆检验-无答案版本
  • 《从理论到实践:CRC校验的魔法之旅》
  • Benewake(北醒) TF-NOVA 在通过TTL-USB转接板更改配置教程
  • VUE快速入门-4:简单入门案例
  • eplan许可证无法识别硬件信息
  • if/switch语句初始化功能
  • MySQL内置函数:字符串函数,数值函数,日期函数,流程控制函数
  • 【unity实战】Unity动画层级(Animation Layer)的Sync同步和Timing定时参数使用介绍,同步动画层制作角色的受伤状态
  • 数据结构基本概念
  • 如何导出pip下载的paho-mqtt包
  • 1.了解开发行业
  • 解析:深度优先搜索、广度优先搜索和回溯搜索
  • OPC Client第3讲(wxwidgets):wxFormBuilder;基础框架;事件处理
  • JavaScript 所有操作数组的方法
  • Spring Bean 全方位指南:从作用域、生命周期到自动配置详解
  • pip 的包下载之后存放在哪?
  • 【AI提示词】退休规划顾问专家
  • SonarQube 集成教程
  • Python读取Excel表格数据并写成JSON格式文件(精简版)
  • 3.指令与权限
  • 4.6 实现重定向
  • Python基础知识语法归纳总结(数据类型-1)
  • 三格电子——CAN 转光纤(点对点)布线常见问题