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

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.kler.cn/a/506303.html

相关文章:

  • tomcat文件目录讲解
  • 【Git版本控制器--1】Git的基本操作--本地仓库
  • 微软开源AI Agent AutoGen 详解
  • 《机器学习》——DBSCAN算法
  • ASP.NET Core - 缓存之分布式缓存
  • Windows远程桌面网关出现重大漏洞
  • EE213 Lab virtuoso final project SRAM designlayout
  • SEO优化与版权保护:提升WordPress网站内容安全和价值
  • 朝天椒USB服务器在万家基金的前置机应用案例
  • 屏幕共享——局域网多个电脑信息分发屏幕分组-直播分享
  • 全面掌握WRF气象模拟与Python数据处理的集成应用与实践
  • C# 运算符和类型强制转换(用户定义的数据类型转换)
  • 如何查看特定版本的Spring源码
  • 深度剖析:NLP 领域基于 TF-IDF 和 Text-Rank 的关键字提取原理
  • Spring Boot集成Sharding-JDBC实现分库分表
  • 解密AIGC三大核心算法:GAN、Transformer、Diffusion Models原理与应用
  • Ubuntu打开文件夹不显示文件
  • 如何选择正确的电源 IC
  • 原神5.0单机版【完全无脑搭建】纯单机*稳定版*
  • 语法
  • leetcode 面试经典 150 题:汇总区间
  • 深度神经网络的校准问题研究:从架构差异到温度缩放优化
  • 【编程语言】C/C++语言常见标准和规范
  • Ubuntu18.04 解决 libc.so.6: version `GLIBC_2.28‘ not found
  • 台达、汇川伺服
  • 指针的进阶