Pnpm,npm,yarn

这篇具有很好参考价值的文章主要介绍了Pnpm,npm,yarn。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

npm

  最初的npm只是简单的通过依赖去递归安装包,所以说每个依赖都会有自己的node_modules,node_modules是嵌套的。一个项目会存在多个包,多个包之间难免会有公共的依赖,node_modules嵌套的话,这样公共依赖就会下载多次。会造成磁盘空间的浪费,较长的下载时间,文件路径过长(windows文件路径最长是260多个字符,嵌套可能会超过其长度限制)

对于上述的缺点,在后面的版本效仿yarn的方式进行了解决

优点:官方支持;社区庞大;

Yarn

Yarn通过扁平化node_modules(同一个包,不同版本还是会嵌套下载。一个包是有多个版本的,只能提升一个),解决了公共依赖重复下载和文件路径过长的问题。还实现了yarn.lock来锁定版本。版本提升会照成幽灵依赖(是 项目里使用了,但是未在项目的package.json 中定义的包)

优点:并行下载,安装速度快;会缓存包,将包进行全局安装,所以支持离线模式,从全局安装的包里面深拷贝到当前项目;(区别于新的npm)

pnpm

当使用 npm 或者yarn时,如果你有 100 个项目,并且所有项目都有一个相同的依赖包,那么, 你在硬盘上就需要保存 100 份该相同依赖包的副本(yarn,拷贝了缓存的包)。如果是使用 pnpm,依赖包将被 存放在一个统一的位置(全局安装),如果你对同一依赖包需要使用不同的版本,则仅有 版本之间不同的文件会被存储起来。

  扁平化的node_modules存在三个个问题: 模块可以访问它们不依赖的包;展开依赖关系树算法是相当复杂的;对于包的不同版本,只能提升一个,还是会存在嵌套的node_modules;

pnpm对于包是全局安装,每个项目的 node_modules 通过链接的形式将包链接到资源仓库中,这样不仅节省了空间,同时也加快了安装速度。

pnpm最大的优点就是保留了非扁平化的node_modules 文件夹,通过链接指向包资源的存储地。

ppm add axios,在node_modules下存在一个.pnpm的包,是硬连接指向包的磁盘地址;node_modules第一层还有一个axios,他里面也有node_modules,是软连接,指向.pnpm(硬连接就是同一个文件的不同引用,而软链接是新建一个文件,文件内容指向另一个路径)ps:路径过长的限制本质上是不能有太深的目录层级,现在都是各个位置的目录的 link,并不是同一个目录,所以也不会有长度限制

使用链接的指向,替代了yarn的复制,npm的下载,明显速度快了很多也更加节省了磁盘空间;同时也存在一个问题,如果你在一个项目内修改了一个包,那么其他依赖这个包的项目也会收到影响;文章来源地址https://www.toymoban.com/news/detail-697755.html

到了这里,关于Pnpm,npm,yarn的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Pnpm,npm,yarn

    npm   最初的npm只是简单的通过依赖去递归安装包,所以说每个依赖都会有自己的node_modules,node_modules是嵌套的。一个项目会存在多个包,多个包之间难免会有公共的依赖,node_modules嵌套的话,这样公共依赖就会下载多次。会造成磁盘空间的浪费,较长的下载时间,文件路径过

    2024年02月09日
    浏览(50)
  • npm、yarn、pnpm

    一、简介 CommonJS 的出现,使 node 环境下的 JS 代码可以用模块更加细粒度的划分。一个类、一个函数、一个对象、一个配置等等均可以作为模块,这种细粒度的划分,是开发大型应用的基石。 为了解决在开发过程中遇到的常见问题,比如加密、提供常见的工具方法、模拟数据

    2024年02月10日
    浏览(56)
  • npm、yarn和pnpm

    在npm@3之前是以嵌套结构方式安装依赖包,存在两个问题: 依赖路径太长 多个包依赖一个相同包时,本地磁盘会存储多个相同的包 npm@ 3和 yarn 使用扁平化结构,node_modules变成所有包放在同一层级 注意 :多个版本的包只有一个会被提升至顶层,其他版本的包会嵌套安装到各自

    2024年02月11日
    浏览(54)
  • npm、yarn与pnpm详解

    🔍 简介 : npm 是随 Node.js 一起安装的官方包管理工具,它为开发者搭建了一个庞大的资源库,允许他们在这个平台上搜索、安装和管理项目所必需的各种代码库或模块。 🚀 常用命令 : npm install :安装package.json中声明的所有依赖项。 npm install package-name :安装指定名称的包

    2024年04月25日
    浏览(34)
  • pnpm、npm、yarn的区别

    pnpm、npm、yarn是三种不同的包管理器,它们之间有一些区别。 安装速度:pnpm的安装速度比npm和yarn快,因为它使用了只下载必需的模块,而不是下载整个依赖树。此外,pnpm还可以并行下载模块,从而进一步提高下载速度。 占用空间:pnpm的占用空间比npm和yarn小,因为它只下载

    2024年02月08日
    浏览(60)
  • npm、yarn、pnpm如何清除缓存?

    前端工程化创建项目会经常使用各种安装包管理工具,安装各种前端依赖包。例如,npm、yarn、pnpm等。时间一长,各种安装包管理工具的在安装依赖时,留下的缓存文件就会变得很大,以至于影响系统的运行,因此必要时清除缓存就是一个不错的选择。本文将着重介绍npm、y

    2024年02月07日
    浏览(60)
  • npm yarn pnpm 命令集

    安装依赖 安装某个依赖 安装到全局(dependencies) 安装到线下(devDependencies) 卸载某个依赖 卸载全局依赖 清除npm缓存 如果清除缓存报禁止--force错误 可以使用以下这条 安装pnpm 打开CMD命令行 输入 查看版本号 安装依赖 安装某个依赖 删除某个依赖 更新所有依赖 更新某个依赖

    2024年02月12日
    浏览(56)
  • npm, yarn和pnpm清理缓存

    npm, yarn和pnpm是时下主流的node.js包管理器。 随着前端项目的增多,会下载许多的依赖。不管是哪种包管理器,都会使用缓存来增加下次下载的速度。但很多情况下缓存文件不会被自动清空,如果不手动清理,可能会占用非常多系统盘的存储空间。 为此,本文记录了三种包管理

    2024年01月20日
    浏览(50)
  • “yarn“、“npm“、“cnpm“和“pnpm“的区别

    npm(Node Package Manager)是Node.js的默认包管理器。它是一个全球最大的开源软件注册表,拥有数量庞大的包供开发者使用。npm具有广泛的生态系统和大量的社区支持。 软件包数量庞大,几乎包含了所有常见的开源库和工具。 社区活跃,有大量的文档、教程和支持。 可以方便地

    2024年02月11日
    浏览(47)
  • 【JavaScript】npm、Yarn 和 pnpm 的区别

    npm、Yarn 和 pnpm 都是用于管理和构建 JavaScript 项目的包管理工具,以下是它们之间的一些区别和特点。 npm(Node Package Manager): npm 是 Node.js 官方提供的包管理工具,是 JavaScript 生态系统中使用最广泛的包管理工具之一。 npm 使用 package.json 文件来记录项目的依赖关系和配置信

    2024年02月16日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包