在这里插入图片描述

文章目录

      • **1. 安装 Yarn(推荐方法)**
      • **2. 验证安装**
      • **3. 常见问题及解决方法**
        • **① 权限不足(Error: EPERM)**
        • **② 网络问题(连接超时或下载失败)**
        • **③ 环境变量未正确配置**
      • **4. 替代安装方法(如果 npm 安装失败)**
        • **① 使用 Chocolatey(Windows 包管理器)**
        • **② 使用 Scoop**
        • **③ 直接下载安装包**
      • **5. 卸载 Yarn**
      • **一、核心特性对比**
      • **二、常用命令对比**
      • **三、核心差异详解**
        • 1. **依赖安装机制**
        • 2. **Monorepo 支持**
        • 3. **安全与稳定性**
      • **四、使用场景推荐**
      • **五、迁移示例**
        • npm → Yarn
        • npm → pnpm
      • **六、镜像源加速**
      • **总结**

在这里插入图片描述

1. 安装 Yarn(推荐方法)

打开 CMD(命令提示符)PowerShell(建议以 管理员身份运行),执行以下命令:

npm install -g yarn
  • -g 表示全局安装,使 yarn 命令可以在任何目录下使用。

2. 验证安装

安装完成后,检查 Yarn 是否安装成功:

yarn --version

如果显示版本号(如 4.1.0),说明安装成功。


3. 常见问题及解决方法

① 权限不足(Error: EPERM)

报错示例

npm ERR! Error: EPERM: operation not permitted

解决方法

  • 以管理员身份运行 CMD/PowerShell,然后重新执行安装命令。
  • 如果仍然报错,尝试修复 npm 权限:
    npm cache clean --force
    npm install -g yarn --force
    
② 网络问题(连接超时或下载失败)

报错示例

npm ERR! network timeout
npm ERR! Unable to download package

解决方法

  • 切换 npm 镜像源(如淘宝源):
    npm config set registry https://registry.npmmirror.com
    
    然后重新安装 Yarn:
    npm install -g yarn
    
  • 关闭代理(如果使用了 VPN/代理):
    npm config set proxy false
    
③ 环境变量未正确配置

问题:安装成功,但运行 yarn 时提示 'yarn' 不是内部或外部命令
解决方法

  1. 找到 Yarn 的安装路径(通常在 %APPDATA%\npmC:\Users\你的用户名\AppData\Roaming\npm)。
  2. 将该路径添加到 系统环境变量 PATH 中:
    • Win + R → 输入 sysdm.cpl高级环境变量 → 在 PATH 中添加 Yarn 的路径。
  3. 重新打开 CMD/PowerShell,再次运行 yarn --version 测试。

4. 替代安装方法(如果 npm 安装失败)

① 使用 Chocolatey(Windows 包管理器)

如果你已安装 Chocolatey,可以运行:

choco install yarn
② 使用 Scoop

如果已安装 Scoop,可以运行:

scoop install yarn
③ 直接下载安装包

从 Yarn 官网 下载 Windows 版的 .msi 安装包,双击安装。


5. 卸载 Yarn

如果需要卸载 Yarn,可以执行:

npm uninstall -g yarn

或者通过 Chocolatey/Scoop 卸载:

choco uninstall yarn   # Chocolatey
scoop uninstall yarn  # Scoop


以下是 npm、Yarn 及 pnpm 三大主流 JavaScript 包管理工具的详细对比,涵盖核心特性、命令差异及使用场景:


一、核心特性对比

特性npm (Node Package Manager)Yarn (Yarn Berry)pnpm (Performance npm)
开发者Node.js 官方Meta (Facebook) + 社区Vercel 团队
安装速度中等快(依赖缓存机制)极快(硬链接 + 符号链接)
磁盘空间占用高(重复依赖)中(依赖提升)极低(共享依赖)
依赖管理机制嵌套依赖树扁平化依赖树内容寻址存储
安全机制npm audit(基础)零安装(离线优先)严格隔离依赖(防幽灵依赖)
Monorepo 支持需配合 Lerna原生支持(Workspaces)原生支持(Workspaces)
锁定文件package-lock.jsonyarn.lockpnpm-lock.yaml
默认镜像源registry.npmjs.orgregistry.yarnpkg.comregistry.npmjs.org

二、常用命令对比

操作npm 命令Yarn 命令pnpm 命令
初始化项目npm inityarn initpnpm init
安装所有依赖npm installyarn installpnpm install
添加生产依赖npm install <package>yarn add <package>pnpm add <package>
添加开发依赖npm install -D <package>yarn add -D <package>pnpm add -D <package>
全局安装npm install -g <package>yarn global add <package>pnpm add -g <package>
移除依赖npm uninstall <package>yarn remove <package>pnpm remove <package>
更新依赖npm updateyarn upgradepnpm update
运行脚本npm run <script>yarn run <script>pnpm run <script>
安全审计npm audityarn npm auditpnpm audit
切换镜像源npm config set registry <url>yarn config set registry <url>pnpm config set registry <url>

三、核心差异详解

1. 依赖安装机制
  • npm:早期版本使用嵌套依赖(node_modules 嵌套),v3+ 改为扁平化结构,可能导致依赖重复幽灵依赖(未声明但可访问)。
  • Yarn:通过 Plug’n’Play (PnP) 抛弃 node_modules,直接映射依赖到缓存目录,节省空间但需适配工具链。
  • pnpm:使用硬链接将依赖指向全局存储,每个项目共享同一份依赖文件,节省 70%+ 磁盘空间
2. Monorepo 支持
  • Yarn/pnpm:原生支持 workspaces,可跨包共享依赖:
    // package.json
    {"workspaces": ["packages/*"]
    }
    
  • npm:需配合 lernanpm-workspaces(v7+ 支持)。
3. 安全与稳定性
  • Yarnyarn.lock 严格锁定版本,零安装模式(Zero-Installs)将依赖提交到仓库,完全离线运行。
  • pnpm:依赖隔离严格,禁止访问未声明的包,避免安全风险。
  • npmpackage-lock.json 锁定版本,但依赖提升可能引发冲突。

四、使用场景推荐

场景推荐工具原因
新项目pnpm / Yarn Berry安装快、节省磁盘,依赖管理严格
企业级 MonorepoYarn Berry / pnpm原生 Workspaces 支持完善,依赖隔离好
兼容性要求高npm官方工具,生态兼容性最佳
磁盘空间敏感pnpm硬链接机制节省空间
离线开发Yarn Berry (Zero-Installs)依赖提交到 Git,无需网络安装
迁移成本低npm → Yarn Classicyarn.lock 兼容 package-lock.json

五、迁移示例

npm → Yarn
  1. 删除 node_modulespackage-lock.json
  2. 全局安装 Yarn:
    npm install -g yarn
    
  3. 安装依赖:
    yarn install  # 自动生成 yarn.lock
    
npm → pnpm
  1. 安装 pnpm:
    npm install -g pnpm
    
  2. 迁移依赖:
    pnpm import  # 从 package-lock.json 生成 pnpm-lock.yaml
    pnpm install
    

六、镜像源加速

# 设置淘宝源
npm config set registry https://registry.npmmirror.com
yarn config set registry https://registry.npmmirror.com
pnpm config set registry https://registry.npmmirror.com

总结

  • 追求性能和磁盘效率:选 pnpm(尤其是 Monorepo 项目)。
  • 企业级稳定性和离线能力:选 Yarn Berry
  • 兼容性和官方支持:选 npm(Node.js 原生集成)。

📌 趋势:2025 年新项目中,pnpmYarn Berry 占比超过 70%,尤其在大型项目中优势明显。建议根据团队需求和技术栈选择合适的工具。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/87770.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/87770.shtml
英文地址,请注明出处:http://en.pswp.cn/pingmian/87770.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

跨平台直播美颜SDK集成实录:Android/iOS如何适配贴纸功能

众所周知&#xff0c;直播平台与短视频平台的贴纸功能不仅是用户表达个性的方式&#xff0c;更是平台提高用户粘性和互动转化的法宝。 可问题来了&#xff1a;如何让一个贴纸功能&#xff0c;在Android和iOS两大平台上表现一致、运行流畅、加载稳定&#xff1f;这背后&#xff…

JavaWeb(苍穹外卖)--学习笔记04(前端:HTML,CSS,JavaScript)

前言 本片文章是学习B站黑马程序员苍穹外卖的学习笔记。因为最近期末周&#xff0c;一直在应付考试所以就学的很少&#xff0c;恰好视频中在讲Nginx反向代理和负载均衡&#xff08;写着对前端的内容做一个复习&#xff09; 概述&#xff1a; 1.web前端主要由三部分组成&…

智能学号抽取系统 V5.4.3.2 —— Vue.js 实现的多功能课堂随机抽签工具

智能学号抽取系统 V5.4.3.2 —— Vue.js 实现的多功能课堂随机抽签工具 在教学或会议场景中&#xff0c;我们经常需要随机抽取一个或多个学号/编号来决定发言者、答题者或者参与者。为了提高效率和公平性&#xff0c;我们可以使用一些智能化的小工具来实现这一过程。 今天介绍…

从0开始学习R语言--Day39--Spearman 秩相关

在非参数统计中&#xff0c;不看数据的实际数值&#xff0c;单纯比较两组变量的值的排名是通用的基本方法&#xff0c;但在客观数据中&#xff0c;很多变量的关系都是非线性的&#xff0c;其他的方法不是对样本数据的大小和线性有要求&#xff0c;就是只能对比数据的差异性&…

WSL - Linux 安装 Anaconda3-2025.06-0 详细教程 [WSL 分发版均适用]

一、检查系统状态 安装前先确认 WSL - Linxu 已正常启动&#xff08;比如 Ubuntu&#xff09;&#xff0c;网络连接稳定&#xff0c;并且系统磁盘有足够空间&#xff0c;一般建议预留至少 5GB 以上的可用空间&#xff0c;避免因空间不足导致安装失败。 二、下载安装包 Anacond…

热血三国建筑攻略表格

<!DOCTYPE html> <html lang"zh-CN"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>热血三国建筑攻略表格</title><style>…

SpringBoot+MySQL医院挂号系统源码

概述 基于SpringBootMySQL开发的医院挂号系统完整源码&#xff0c;该系统功能完善&#xff0c;包含从患者挂号到医生管理的全流程解决方案&#xff0c;采用主流技术栈开发&#xff0c;代码规范易于二次开发。 主要内容 系统包含完整的前后台功能模块&#xff1a; ​​前台功…

Linux系统之MySQL数据库基础

目录 一、概述 数据库概念 数据库的类型 关系型数据库模型 关系数据库相关概念 二、安装 1、mariadb安装 2、mysql安装 3、启动并开机自启 4、本地连接&#xff08;本地登录&#xff09; 三、mysqld数据库配置与命令 yum安装后生成的目录 mysqld服务器的启动脚本 …

MySQL--InnoDB存储引擎--页结构

目录 一、页的大小 二、页的分类 三、页头和页尾 3.1 页头--File Header 3.2 页尾--File Trailer 3.3 LSN 四、数据行 五、页中数据的查询 六、事务和索引在页中的记录 一、页的大小 前面介绍了每个数据页默认大小为16KB&#xff0c;是操作系统“数据块” 4KB 的整数倍…

卡车检测数据集-700张图片交通运输管理 智能监控系统 道路安全监测

跌倒检测数据集-4500张图片&#x1f4e6; 已发布目标检测数据集合集&#xff08;持续更新&#xff09;&#x1f69b; Deteccin de carpa 2 Computer Vision Project&#x1f4cc; 数据集概览包含类别&#x1f3af; 应用场景&#x1f5bc; 数据样本展示&#x1f527; 使用建议&a…

Python爬虫实战:研究pangu库相关技术

1. 引言 1.1 研究背景与意义 在数字化信息传播时代,中文文本排版质量直接影响信息传达效果。规范的排版要求中文与西文、数字间保持合理空格间距,但人工处理不仅效率低,且易出现一致性问题。随着互联网中文内容爆发式增长,传统人工排版已无法满足需求。Python 作为高效的…

day48-考试系统项目集群部署

1. ✅考试系统项目集群架构图负载均衡说明7层负载通过nginx对http请求进行转发&#xff08;uri,ua,类型&#xff09;4层负载对端口负载均衡&#xff08;后端&#xff09;2. &#x1f4dd;环境准备角色主机ip负载均衡lb01/lb02172.16.1.5/172.16.1.6前端web集群web01/web02172.1…

Redis+Caffeine双层缓存策略对比与实践指南

RedisCaffeine双层缓存策略对比与实践指南在高并发场景下&#xff0c;缓存是提升系统性能和并发处理能力的关键手段。常见的缓存方案包括远程缓存&#xff08;如Redis&#xff09;和本地缓存&#xff08;如Caffeine&#xff09;。单层缓存各有优劣&#xff0c;结合两者优势的双…

FastAPI+React19 ERP系统实战 第02期

一、搭建环境 1.1 创建Python虚拟环境 切换Python版本: pyenv local 3.12创建虚拟环境: python -m venv venv激活虚拟环境: venv\Scripts\activate1.2 安装FastAPI项目依赖 requirements.txt fastapi==0.109.1

百度AI文心大模型4.5系列开源模型评测,从安装部署到应用体验

2025年6月30日&#xff0c;百度突然宣布&#xff0c;将旗下最新的大语言模型文心大模型4.5&#xff08;ERNIE 4.5&#xff09;全系列开源&#xff0c;震动整个AI行业。百度在GitCode平台上开源了文心大模型4.5系列&#xff0c;包括ERNIE-4.5-VL-424B-A47B-Base-PT等多个型号。此…

windows安装maven环境

在maven官网下载安装包 https://maven.apache.org/download.cgi 下载完成后安装maven&#xff0c;一般下载编辑好的 创建个maven目录解压出来即可 配置环境变量 根据刚刚的安装路径&#xff0c;新建一个命名为MAVEN_HOME的系统变量 新建完成点开系统变量的Path项&#xff0c;…

MySQL(117)何进行数据库安全加密?

数据库安全加密是保护敏感数据免受未授权访问的重要手段。以下是一个详细深入的步骤&#xff0c;介绍如何进行数据库安全加密&#xff0c;包括数据传输加密和数据存储加密。 一. 数据传输加密 确保数据在传输过程中被加密&#xff0c;以防止中间人攻击。我们以MySQL为例&#x…

工程化实践——标准化Eslint、PrettierTS

前端工程化中的标准化工具&#xff08;如Prettier、ESLint、Husky等&#xff09;虽然大幅提升了开发效率和代码质量&#xff0c;但在实际使用中也存在一些限制和挑战。以下从工具特性、团队协作、开发体验等维度详细分析常见限制&#xff0c;并以Prettier为核心举例说明&#x…

应急响应靶场——web3 ——知攻善防实验室

前景需要&#xff1a; 小苕在省护值守中&#xff0c;在灵机一动情况下把设备停掉了&#xff0c;甲方问&#xff1a;为什么要停设备&#xff1f;小苕说&#xff1a;我第六感告诉我&#xff0c;这机器可能被黑了。这是他的服务器&#xff0c;请你找出以下内容作为通关条件&#…

Ubuntu:Tomcat里面的catalina.sh

认识catalina.sh 1 启动Tomcat catalina.sh start相当于startup.sh 2 停止Tomcat catalina.sh stop相当于shutdown.sh 3 前台运行Tomcat 一般用于调试 catalina.sh run4 Tomcat脚本 编辑如下脚本run_tomcat.sh 里面的一些HOME位置改成自己的 #!/bin/shWORKDIR$(cd $(dirname $0…