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

pnpm add 和 pnpm install 的区别?

文章目录

      • 1. pnpm add
      • 2. pnpm install
      • 3. 总结
      • 应用场景
      • 示例

在使用 pnpm 管理项目依赖时, pnpm addpnpm install 是两个常用的命令,但它们的功能和使用场景有所不同。以下是详细的解释:


1. pnpm add

功能:用于向项目的 package.json 文件中添加新的依赖项,并安装这些依赖项。

特点

  • 添加依赖:会将指定的包添加到 dependenciesdevDependenciesoptionalDependencies 中。
  • 自动安装:不仅会更新 package.json,还会立即安装新添加的依赖项。
  • 灵活性:可以通过参数指定依赖项的类型(如 --save-dev 添加到 devDependencies)。

常用选项

  • --save-dev-D:将包添加到 devDependencies
  • --save-peer-P:将包添加到 peerDependencies
  • --save-optional-O:将包添加到 optionalDependencies
  • --save-exact-E:保存精确版本号。

示例

# 添加一个新的生产依赖项
pnpm add react react-dom# 添加一个新的开发依赖项
pnpm add --save-dev @types/react @types/react-dom# 添加并保存精确版本号
pnpm add --save-exact lodash

2. pnpm install

功能:根据 package.json 文件中的依赖项列表安装所有依赖项。

特点

  • 安装现有依赖:不会修改 package.json,只是根据已有的依赖项列表安装所需的包。
  • 适用于多种场景:常用于克隆仓库后首次安装依赖,或者在更改了 package.json 后重新安装所有依赖项。
  • 处理锁文件:会根据 pnpm-lock.yaml 文件确保安装的依赖项版本一致。

示例

# 安装所有依赖项
pnpm install# 安装特定版本的依赖项(如果需要)
pnpm install react@18.3.1 react-dom@18.3.1

3. 总结

  • pnpm add:用于添加新的依赖项并安装它们,同时更新 package.json
  • pnpm install:仅用于安装 package.json 中已列出的依赖项,不会修改 package.json

应用场景

  • 开发过程中添加新依赖:使用 pnpm add 来添加新的库或工具,并确保它们被记录在 package.json 中。
  • 初始设置或更新依赖:使用 pnpm install 来安装所有现有的依赖项,特别是在克隆仓库或更新 package.json 后。

示例

假设你想要添加一个新的开发依赖项 typescript,你可以使用以下命令:

pnpm add --save-dev typescript

这将更新 package.json 并安装该插件。

如果你只是想确保所有现有依赖项都已正确安装,可以运行:

pnpm install

这将根据 package.jsonpnpm-lock.yaml 安装所有必要的依赖项。

http://www.lryc.cn/news/522382.html

相关文章:

  • Linux:文件描述符fd、系统调用open
  • CPU负载与CPU使用率之区别
  • C++实现设计模式---外观模式 (Facade)
  • 仿射密码实验——Python实现(完整解析版)
  • 【Qt 常用控件】按钮类(QPushButton、QRadioButton、QCheckBox)
  • Amazon Relational Database Service (RDS)
  • linux分配磁盘空间命令
  • 21_Spring Boot缓存注解介绍
  • 【linux】grep、awk、sed实战练习(1)-template
  • UDP报文格式
  • 联想Android面试题及参考答案
  • Android CustomTextField
  • 网络设备安全保证计划 (NESAS) - 供应商视角 笔记
  • 强化学习-蒙特卡洛方法
  • IIO(Industrial I/O)驱动介绍
  • 画流程图 代码生成流程图 流程图自动运行
  • Maven 配置本地仓库
  • 计算机网络常见协议
  • SCSSA-BiLSTM基于改进麻雀搜索算法优化双向长短期记忆网络多特征分类预测Matlab实现
  • 基于Java+SpringBoot+Vue的前后端分离的体质测试数据分析及可视化设计
  • Ansible实战:如何正确选择 command 和shell模块?
  • 机器学习:监督学习与非监督学习
  • 近红外简单ROI分析matlab(NIRS_SPM)
  • 运输层安全协议SSL
  • “扣子”开发之四:与千帆AppBuilder比较
  • Asp .Net Core 实现微服务:集成 Ocelot+Nacos+Swagger+Cors实现网关、服务注册、服务发现
  • 62_Redis服务器集群优化
  • 【React】静态组件动态组件
  • 深度学习中的卷积和反卷积(四)——卷积和反卷积的梯度
  • ASP.NET Core - IStartupFilter 与 IHostingStartup