安装 yarn、pnpm、功能比较

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

安装 yarn

官网:https://classic.yarnpkg.com/

快速、可靠和安全的依赖性管理。

Yarn是您代码的软件包管理器。它允许您使用和共享(例如JavaScript)与来自世界各地的其他开发人员一起编写代码。Yarn是一个新的快速安全可信赖的可以替代 NPM 的依赖管理工具。Yarn 一种取代 npm 的 Node的模块管理器,yarn 同样是一个从 npm 注册源获取模块的工具。

Yarn允许您使用其他开发人员的解决方案来解决不同的问题,使您更容易开发软件。

超快:Yarn缓存了它下载的每个软件包,因此它永远不需要再下载它。它还并行化操作,以最大限度地提高资源利用率,因此安装时间比以往任何时候都快。

超级安全:Yarn在执行代码之前使用校验和来验证每个已安装的软件包的完整性。

超级可靠:使用详细但简洁的锁文件格式和确定性安装算法,Yarn能够保证在一个系统上工作的安装在任何其他系统上的工作方式完全相同。

安装 yarn

npm install yarn -g

创建软连接

ln -s /usr/local/nodejs/bin/yarn /usr/local/bin/yarn
ln -s  /usr/local/nodejs/bin/yarnpkg /usr/local/bin/yarnpkg

查看版本

yarn -v

yarn 查看各种路径命令

### 查看 yarn 安装包的位置
yarn global dir

/usr/local/share/.config/yarn/global。如果使用yarn global add xxx安装文件包,默认位置。

### 查看 yarn 安装包 bin 位置
yarn global bin

/usr/local/bin。如果使用yarn global add xxx安装文件包 bin 默认位置。

### 看 yarn 全局 cache 位置
yarn cache dir

/usr/local/share/.cache/yarn/v6。

### 看 yarn 镜像源
yarn config get registry
### 设置 yarn 镜像源
yarn config set registry https://registry.yarnpkg.com

卸载 yarn

yarn 全局配置文件,默认在/usr/local/share/.yarnrc,或者/root/.yarnrc

npm uninstall yarn -g

rm -f /usr/local/bin/yarn
rm -f /usr/local/bin/yarnpkg
rm -f /usr/local/bin/create-vite
rm -f /usr/local/bin/cva
rm -f /usr/local/share/.yarnrc

rm -f /root/.yarnrc
rm -rf /root/.yarn

rm -rf  /usr/local/share/.config/yarn
rm -rf  /usr/local/share/.cache/yarn

rm -rf /usr/local/nodejs/lib/node_modules/corepack/shims/yarn
rm -rf /usr/local/nodejs/lib/node_modules/corepack/shims/nodewin/yarn

删除所有包含 yarn 的文件及目录

find /root -name yarn* | xargs rm -rf      
find /usr/local -name yarn* | xargs rm -rf

yarn 常用命令

yarn add:添加一个软件包以在您当前软件包中使用。
yarn init:初始化软件包的开发。
yarn install:安装package.json文件中定义的所有依赖项。
yarn publish:向软件包管理器发布软件包。
yarn remove:从当前软件包中删除一个未使用的软件包。

安装 pnpm

快速的,节省磁盘空间的包管理工具

当使用 npm 时,如果你有 100 个项目,并且所有项目都有一个相同的依赖包,那么, 你在硬盘上就需要保存 100 份该相同依赖包的副本。然而,如果是使用 pnpm,依赖包将被 存放在一个统一的位置,因此:

如果你对同一依赖包需要使用不同的版本,则仅有 版本之间不同的文件会被存储起来。例如,如果某个依赖包包含 100 个文件,其发布了一个新 版本,并且新版本中只有一个文件有修改,则 pnpm update 只需要添加一个 新文件到存储中,而不会因为一个文件的修改而保存依赖包的 所有文件。

所有文件都保存在硬盘上的统一的位置。当安装软件包时, 其包含的所有文件都会硬链接自此位置,而不会占用 额外的硬盘空间。这让你可以在项目之间方便地共享相同版本的 依赖包。

最终结果就是以项目和依赖包的比例来看,节省了大量的硬盘空间, 并且安装速度也大大提高了!

快速:pnpm is up to 2x faster than npm

高效:node_modules 中的文件为复制或链接自特定的内容寻址存储库

支持 monorepos:pnpm 内置支持单仓多包

严格:pnpm 默认创建了一个非平铺的 node_modules,因此代码无法访问任意包

安装

通过 npm 安装 pnpm

npm install -g pnpm

npm install -g @pnpm/exe

Homebrew 安装 pnpm
如果你已经安装了 Homebrew 软件包管理器,则可以使用如下命令赖安装 pnpm:

brew install pnpm

Scoop 安装 pnpm
如果你已经安装了 Scoop,就可以通过一下命令安装 pnpm:

scoop install nodejs-lts pnpm

创建软链接和硬链接

通过 ln -s 创建一个软链接,通过 ln 可以创建一个硬链接。

ln -s /usr/local/nodejs/bin/pnpm /usr/local/bin/pnpm
ln -s  /usr/local/nodejs/bin/pnpx /usr/local/bin/pnpx

他们的区别有以下几点:

软链接可理解为指向源文件的指针,它是单独的一个文件,仅仅只有几个字节,它拥有独立的 inode
硬链接与源文件同时指向一个物理地址,它与源文件共享存储数据,它俩拥有相同的 inode

查看版本

pnpm -v

或者
pnpm --version

pnpm 常用命令

# 初始化项目,安装项目极其依赖
pnpm install
pnpm i

# 安装包, 默认情况下,任何新软件包都安装为生产依赖项,写入dependencies
pnpm add packName
pnpm add packName -S

# 安装包,安装为开发依赖项,写入 devDependencies
pnpm add packName -D

# 安装包,全局安装
pnpm add packName -g

# 移除项目,参数要与安装的时候相同
pnpm remove packName

卸载 pnpm

npm uninstall pnpm -g

查看所有包含 pnpm 的遗留文件

find /root -name pnpm*
find /usr/local -name pnpm*

查看所有包含 pnpx 的遗留文件

find /root -name pnpx*
find /usr/local -name pnpx*

删除所有包含 pnpm 的文件及目录

find /root -name pnpm* | xargs rm -rf      
find /usr/local -name pnpm* | xargs rm -rf 

删除所有包含 pnpx 的文件及目录

find /root -name pnpx* | xargs rm -rf      
find /usr/local -name pnpx* | xargs rm -rf 

也可以单独删除:

rm -f /usr/local/bin/pnpm
rm -f /usr/local/bin/pnpx

rm -f /root/.cache/pnpm
rm -f /root/.local/share/pnpm

rm -rf /usr/local/nodejs/lib/node_modules/corepack/shims/pnpm
rm -rf /usr/local/nodejs/lib/node_modules/corepack/shims/pnpm.cmd
rm -rf /usr/local/nodejs/lib/node_modules/corepack/shims/pnpm.ps1

rm -rf /usr/local/nodejs/lib/node_modules/corepack/shims/pnpx
rm -rf /usr/local/nodejs/lib/node_modules/corepack/shims/pnpx.cmd
rm -rf /usr/local/nodejs/lib/node_modules/corepack/shims/pnpx.ps1

rm -rf /usr/local/nodejs/lib/node_modules/corepack/shims/nodewin/pnpm
rm -rf /usr/local/nodejs/lib/node_modules/corepack/shims/nodewin/pnpm.cmd
rm -rf /usr/local/nodejs/lib/node_modules/corepack/shims/nodewin/pnpm.ps1

rm -rf /usr/local/nodejs/lib/node_modules/corepack/shims/nodewin/pnpx
rm -rf /usr/local/nodejs/lib/node_modules/corepack/shims/nodewin/pnpx.cmd
rm -rf /usr/local/nodejs/lib/node_modules/corepack/shims/nodewin/pnpx.ps1

兼容性

以下列表列出了以往的 pnpm 版本和对应支持的 Node.js 版本。文章来源地址https://www.toymoban.com/news/detail-770368.html

Node.js pnpm 5 pnpm 6 pnpm 7 pnpm 8
Node.js 12 ✔️ ✔️
Node.js 14 ✔️ ✔️ ✔️
Node.js 16 ?️ ✔️ ✔️ ✔️
Node.js 18 ?️ ✔️ ✔️ ✔️
Node.js 20 ?️ ?️ ✔️ ✔️

功能比较

功能 pnpm Yarn npm
工作空间支持(monorepo) ✔️ ✔️ ✔️
有锁文件 ✔️ - pnpm-lock.yaml ✔️ - yarn.lock ✔️ - package-lock.json
隔离的 node_modules ✔️ - 默认 ✔️ ✔️
提升的 node_modules ✔️ ✔️ ✔️ - 默认
管理 Node.js 版本 ✔️
自动安装 peers ✔️ ✔️
Plug’n’Play ✔️ ✔️ - 默认
零安装 ✔️
修补依赖项 ✔️ ✔️
支持覆盖 ✔️ ✔️ - 通过 resolutions ✔️
内容可寻址存储 ✔️
动态包执行 ✔️ - 通过 pnpm dlx ✔️ - 通过 yarn dlx ✔️ - 通过 npx
辅助缓存 ✔️
列出许可证 ✔️ - 通过 pnpm licenses list ✔️ - 通过插件

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

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

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

相关文章

  • 包管理工具详解npm、yarn、cnpm、npx、pnpm

    目录: 1 npm包管理工具 2 package配置文件 3 npm install原理 4 yarn、cnpm、npx 5 发布自己的开发包 6 pnpm使用和原理 当我们使用npm install xxxx 的时候会添加一个node_module和2个json文件:        这个配置文件会记录着你 项目的名称 、 版本号 、 项目描述 等;  也会记录着你 项目所

    2024年02月06日
    浏览(52)
  • 包管理工具详解npm 、 yarn 、 cnpm 、 npx 、 pnpm(2023)

    Node Package Manager,也就是Node包管理器; 但是目前已经不仅仅是Node包管理器了,在前端项目中我们也在使用它来管理依赖的包; 比如vue、vue-router、vuex、express、koa、react、react-dom、axios、babel、webpack等等; npm属于node的一个管理工具,所以我们需要先安装Node; node管理工具:

    2024年02月13日
    浏览(47)
  • 包管理工具 nvm npm nrm yarn cnpm npx pnpm详解

    npm、cnpm、yarn、pnpm、npx、nvm的区别:https://blog.csdn.net/weixin_53791978/article/details/122533843 npm、cnpm、yarn、pnpm、npx、nvm的区别:https://blog.csdn.net/weixin_53791978/article/details/122533843 包管理工具:npm、npx、yarn、cnpm、pnpm:https://blog.csdn.net/March_Q__/article/details/126675476 包管理工具详解npm 、

    2024年02月12日
    浏览(39)
  • 前端包管理器的工具,npm和Yarn以及pnpm是最常用的

    👍 点赞,你的认可是我创作的动力! ⭐️ 收藏,你的青睐是我努力的方向! ✏️ 评论,你的意见是我进步的财富! 前端包管理器是用于管理前端项目依赖项(如库、框架和工具)的工具。它们有助于确保项目的依赖项始终保持最新、可维护和可复制。以下是一些常用的前

    2024年02月07日
    浏览(52)
  • 前端 node 常见的包管理工具 npm、npx、Yarn、cnpm、pnpm 的区别有哪些

    些工具都是用于管理 Node.js 包和依赖项的 npm (Node Package Manager) : npm 是 Node.js 的默认包管理工具,随同 Node.js 安装。 主要功能包括安装、发布、管理 JavaScript 包和依赖项。 npm 是最常用的包管理工具之一,拥有庞大的包仓库(npm Registry)。 npx : npx 是 npm 5.2.0 版本引入的一个工

    2024年02月20日
    浏览(45)
  • npm或者pnpm或者yarn安装依赖报错ENOTFOUND解决办法

    如果报错说安装依赖报错,大概率是因为npm源没有设置对,比如我这里安装protobufjs的时候报错:ENOTFOUND npm ERR! code ENOTFOUND npm ERR! syscall getaddrinfo npm ERR! errno ENOTFOUND npm ERR! network request to https://registry.cnpmjs.org/protobufjs-cli failed, reason: getaddrinfo ENOTFOUND registry.cnpmjs.org npm ERR! network

    2024年01月24日
    浏览(70)
  • npm、yarn、pnpm

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

    2024年02月10日
    浏览(56)
  • Pnpm,npm,yarn

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

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

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

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

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

    2024年04月25日
    浏览(34)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包