pnpm

简介: pnpm

动机

节约磁盘空间并提升安装速度

当使用 npmYarn 时,如果你有 100 个项目使用了某个依赖,就会有 100 份该依赖的副本保存在硬盘上。 对于 pnpm ,依赖项将存储在一个内容可寻址的仓库中,因此:

  • 如果你用到了某依赖项的不同版本,那么只会将有差异的文件添加到仓库。 例如,如果它有100个文件,而新版本只改变了其中1个文件。那么 pnpm update 只会向存储中心添加1个新文件,不会仅仅因为单一的改变而克隆整个依赖。
  • 所有文件都会存储在硬盘上的同一位置。 当多个包(package)被安装时,所有文件都会从同一位置创建硬链接,不会占用额外的磁盘空间。 这允许你跨项目地共享同一版本的依赖。


最终你节省了大量与项目和依赖成比例的硬盘空间,并且拥有更快的安装速度!


创建非扁平化的 node_modules 文件夹

当使用 npm 安装依赖时,所有的依赖都会被提升到模块的根目录。 因此,项目可以访问到未被添加进当前项目的依赖。


pnpm 使用软连接的方式将项目的直接依赖添加进模块文件夹的根目录。

目录
相关文章
|
JavaScript 网络协议 PHP
使用阿里云npm镜像加速
npm(node package manager)是随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问题,常见的使用场景有以下几种:
3737 0
|
12月前
|
JavaScript
vue中watch的用法
vue中watch的用法
|
11月前
|
人工智能 IDE 测试技术
利用AI技术提升编程效率
【10月更文挑战第6天】本文将探讨如何通过人工智能(AI)技术提升编程效率。我们将介绍一些实用的工具和策略,如代码补全、错误检测和自动化测试,以及如何将这些工具整合到你的日常工作流程中。无论你是初学者还是经验丰富的开发者,都可以从这些技巧中受益。让我们一起探索如何利用AI技术来简化编程过程,提高生产力吧!
|
移动开发 JavaScript 前端开发
UniApp H5 跨域代理配置并使用(配置manifest.json、vue.config.js)
这篇文章介绍了在UniApp H5项目中处理跨域问题的两种方法:通过修改manifest.json文件配置h5设置,或在项目根目录创建vue.config.js文件进行代理配置,并提供了具体的配置代码示例。
UniApp H5 跨域代理配置并使用(配置manifest.json、vue.config.js)
|
11月前
|
存储 NoSQL 物联网
这些案例展示了MongoDB在不同行业中的广泛应用
这些案例展示了MongoDB在不同行业中的广泛应用
574 4
|
Java jenkins 持续交付
Jenkins Pipeline 流水线 - 拉代码(SVN) + Maven 编译打包
Jenkins Pipeline 流水线 - 拉代码(SVN) + Maven 编译打包
443 0
Jenkins Pipeline 流水线 - 拉代码(SVN) + Maven 编译打包
|
网络协议 Linux 网络安全
遇到Docker容器网络隔断?揭秘六种超级实用解决方案,轻松让Docker容器畅游互联网!
【8月更文挑战第18天】Docker容器内网络不通是开发者常遇问题,可能因网络配置错、Docker服务异常或防火墙阻碍等原因引起。本文提供六种解决策略:确认Docker服务运行状态、重启Docker服务、检查与自定义Docker网络设置、验证宿主机网络连接、临时禁用宿主机IPv6及检查防火墙规则。通过这些步骤,多数网络问题可得以解决,确保容器正常联网。
3105 1
|
存储 资源调度 JavaScript
PNPM(高性能的npm)介绍
PNPM(高性能的npm)介绍
PNPM(高性能的npm)介绍
|
Linux 数据安全/隐私保护 iOS开发
Linux的root用户,普通用户无法在根录中创建文件,一般在其HOME目录里是不受限的,一旦出了HOME目录,大多数地方,仅有读和执行的权限,ctrl + d回到上一个用户,Exit,su - ro
Linux的root用户,普通用户无法在根录中创建文件,一般在其HOME目录里是不受限的,一旦出了HOME目录,大多数地方,仅有读和执行的权限,ctrl + d回到上一个用户,Exit,su - ro