pnpm和npm的区别

pnpm 和 npm 都是用于管理 Node.js 项目中依赖包的工具,但它们有一些关键的不同点。

npm(Node Package Manager)

  • 安装和管理依赖: npm 是 Node.js 官方的包管理工具,用于安装和管理项目的依赖包。
  • 工作原理: 每次安装依赖时,npm 会在 node_modules 文件夹中创建一个完整的依赖树,可能导致依赖重复,占用更多磁盘空间。
  • 性能: 在处理大量依赖时,npm 的安装速度可能较慢,特别是在大项目中。

pnpm

  • 全名: pnpm 是 "Performant npm" 的缩写。
  • 工作原理: pnpm 通过使用全局的缓存和符号链接来高效管理依赖。它会将依赖包存储在全局的缓存目录中,并通过符号链接将这些依赖链接到每个项目的 node_modules 文件夹中。这样可以避免重复下载和存储相同的依赖,节省磁盘空间。
  • 性能: 由于采用了这种缓存和符号链接的机制,pnpm 的安装速度通常比 npm 更快,特别是在处理大量依赖时。
  • 隔离性: pnpm 还提供了更好的依赖隔离性,确保不同项目的依赖不会互相干扰。

pnpm 主要优势

  1. 节省空间:由于使用了符号链接,pnpm 能显著减少磁盘空间的使用。
  2. 更快的安装速度:缓存机制使得重复的安装操作变得更快。
  3. 更好的依赖隔离:pnpm 确保了项目依赖的隔离性,避免了潜在的依赖冲突问题。

使用

要使用 pnpm,你可以先通过 npm 安装它:

shell 复制代码
npm install -g pnpm

然后在项目中使用 pnpm 来安装依赖:

shell 复制代码
pnpm install

总体来说,pnpm 是一个高效的包管理工具,特别适合需要处理大量依赖或需要节省磁盘空间的项目。

更改 pnpm 的源

pnpm 默认使用的是 npm 官方的注册表。不过,和 npm 一样,你也可以根据需要更改 pnpm 的源。例如,如果你在中国大陆使用 pnpm,可能会因为网络原因需要使用更快的镜像源。

1. 查看当前源:

shell 复制代码
pnpm config get registry

2. 设置新的源:

例如,要将源设置为淘宝的 npm 镜像,你可以执行以下命令:

shell 复制代码
pnpm config set registry https://registry.npmmirror.com/

常见的镜像源

yaml 复制代码
淘宝镜像(目前由 npmmirror 维护):https://registry.npmmirror.com/
cnpm(npm 的一个镜像,提供中国大陆的服务):https://r.cnpmjs.org/
npm 镜像(由中国科学技术大学提供):https://registry.npmjs.org/
npm.taobao.org 镜像(不再维护,建议使用 npmmirror):https://registry.npm.taobao.org/
相关推荐
web行路人10 分钟前
React中类组件和函数组件的理解和区别
前端·javascript·react.js·前端框架
超雄代码狂32 分钟前
ajax关于axios库的运用小案例
前端·javascript·ajax
长弓三石40 分钟前
鸿蒙网络编程系列44-仓颉版HttpRequest上传文件示例
前端·网络·华为·harmonyos·鸿蒙
小马哥编程41 分钟前
【前端基础】CSS基础
前端·css
嚣张农民1 小时前
推荐3个实用的760°全景框架
前端·vue.js·程序员
周亚鑫1 小时前
vue3 pdf base64转成文件流打开
前端·javascript·pdf
Justinc.2 小时前
CSS3新增边框属性(五)
前端·css·css3
neter.asia2 小时前
vue中如何关闭eslint检测?
前端·javascript·vue.js
~甲壳虫2 小时前
说说webpack中常见的Plugin?解决了什么问题?
前端·webpack·node.js
嚣张农民2 小时前
JavaScript中Promise分别有哪些函数?
前端·javascript·面试