无废话,直接干,一篇短篇教你利用Corepack安装Yarn~

你们好,我是金金金。

场景

当然是因为项目需要啦 哈哈哈~

package.json 文件中,字段 "packageManager": "yarn@1.22.22" 。这个字段的作用是指定项目推荐使用的包管理器及其版本

了解Corepack

Corepack 在 Node.js 16.9.0 版本中被引入,作为连接不同包管理器的实验性工具。它提供了一种方式,让用户可以直接通过 Node.js 安装和管理 Yarn 和 pnpm 等包管理器,而无需单独安装它们。这使得项目可以更容易地强制使用特定的包管理器版本,而不需要开发人员手动安装它。然而,尽管它具有潜力,Corepack 还是面临了几个障碍。许多开发人员不知道它的存在或误解了它的目的,导致采用困难。此外,它与 Node.js 分发的集成受到质疑,因为包管理器通常独立于运行时运行。(之后可能移除 需要单独安装)

Corepack 的 Shim 目录

  • corepack 提供了一个 shim(代理脚本)机制。当 Corepack 被启用时,它会在 C:\Program Files\nodejs\node_modules\corepack\shims 目录下生成一些代理脚本。这些脚本负责将你的命令(比如 yarnpnpm)转发给 Corepack 处理。

  • Shim 文件 :对于 yarn 来说,shims 目录里有一个 yarnyarn.cmd 文件。这些文件实际上是简单的脚本,它们的作用是在你运行 yarn 命令时,调用 Corepack 来决定使用哪个版本的 Yarn,并确保那个版本已经安装好。

Corepack 的作用是什么?

  • 它提供了自动下载和管理不同包管理器(如 Yarn、pnpm)的功能,并通过 shim 文件提供统一的入口点,使得开发者无需手动全局安装这些工具

安装Yarn

cmd 复制代码
yarn -v

此时我们需要解决,从信息可以得知:不是内部命令,找不到yarn这个命令,因为没有配置环境变量所以找不到,也识别不了这个yarn命令
解释: 我们需要设置环境变量,在系统path变量当中加入C:\Program Files\nodejs\node_modules\corepack\shims; 就可以识别出 yarn命令了

为什么需要添加到 PATH

  • 由于 yarn 实际上是由 Corepack 的 shim 脚本处理的,如果你不把 corepackshims 目录添加到 PATH 中,那么当你在命令行中输入 yarn 时,系统不会知道去哪里找这个命令。因此,你需要告诉系统:"嘿,如果我输入 yarn,请去 C:\Program Files\nodejs\node_modules\corepack\shims 这个目录下找。

测试

  • 此时我们输入 yarn -v

  • 会提示让安装,安装即可。再次测试~ 如下图就是success了~

这样就是成功啦

  • 编写有误还请大佬指正,万分感谢。
相关推荐
全栈前端老曹18 小时前
【包管理】read-pkg-up 快速上手教程 - 读取最近的 package.json 文件
前端·javascript·npm·node.js·json·nrm·package.json
2301_818732062 天前
安装了node,但是cmd找不到node和npm,idea项目也运行失败 已解决
前端·npm·node.js
Sapphire~2 天前
odoo-087 安装 npm (node ok npm not)
linux·运维·npm
Benny的老巢2 天前
【n8n工作流入门02】macOS安装n8n保姆级教程:Homebrew与npm两种方式详解
macos·npm·node.js·n8n·n8n工作流·homwbrew·n8n安装
2301_818732062 天前
下载nvm后,通过nvm无法下载node,有文件夹但是为空 全局cmd,查不到node和npm 已解决
前端·npm·node.js
稀饭522 天前
用changeset来管理你的npm包版本
前端·npm
就知道你是成心的3 天前
npm pack 一键构建npm离线包
npm
GuMoYu3 天前
npm link 测试本地依赖完整指南
前端·npm
爱写程序的小高4 天前
npm ERR! code ERESOLVE npm ERR! ERESOLVE unable to resolve dependency tree
前端·npm·node.js
程序员的程4 天前
我做了一个前端股票行情 SDK:stock-sdk(浏览器和 Node 都能跑)
前端·npm·github