yarn的介绍与操作,yarn和npm的选择

🧶 一、Yarn 是什么?

Yarn 是由 Facebook(Meta)开发的 JavaScript 包管理工具 ,用于替代 npm,解决它在早期版本中存在的一些问题。

✅ Yarn 的优势(v1.x):

  • 📦 更快:并行安装依赖包;
  • 📂 更稳定:引入 yarn.lock 锁定依赖版本;
  • 🛡️ 更安全:默认校验包的完整性;
  • 💬 更清晰的输出日志。

🧑‍💻 二、Yarn 安装

✅ 使用 npm 安装(建议):

bash 复制代码
npm install -g yarn

安装完成后验证版本:

bash 复制代码
yarn -v

📌 三、Yarn 的常用命令对比 npm

操作 npm 命令 yarn 命令
初始化项目 npm init / npm init -y yarn init / yarn init -y
安装所有依赖 npm install yarn install
安装依赖 npm install axios yarn add axios
安装开发依赖 npm install eslint --save-dev yarn add eslint --dev
卸载依赖 npm uninstall axios yarn remove axios
更新依赖 npm update yarn upgrade
添加指定版本 npm install axios@1.4.0 yarn add axios@1.4.0
执行脚本 npm run build yarn build
清缓存 npm cache clean --force yarn cache clean

📁 四、Yarn 生成的文件结构

bash 复制代码
my-app/
├── node_modules/
├── package.json
├── yarn.lock       ← 用于锁定依赖版本(等价于 npm 的 package-lock.json)

💡 五、Yarn vs npm:如何选择?

对比点 npm yarn
默认安装 ✅ Node.js 自带 ❌ 需手动安装
安装速度 ⏳ 稍慢(单线程) ⚡ 更快(并行)
锁版本文件 package-lock.json yarn.lock
命令简洁性 需要 npm run xxx 可以直接 yarn xxx
社区支持 最广泛 稍弱(但稳定)
易用性 更熟悉 语法更清爽
node_modules 构建 全部复制 更优化但可读性低
推荐场景 所有人 追求速度/现代化团队

🟨 注意事项:不要混用 npmyarn

避免在同一个项目中混用两个包管理器,否则会出现依赖混乱:

  • 只保留 package-lock.json(使用 npm)
  • 或只保留 yarn.lock(使用 yarn)

建议团队协商统一使用一种。


🎯 总结推荐

  • 初学者 / 官方推荐 / 保守选手 👉 使用 npm
  • 追求构建速度 / 命令简洁 / CI 优化 👉 使用 yarn
相关推荐
hedley(●'◡'●)7 小时前
基于cesium和vue的大疆司空模仿程序
前端·javascript·vue.js·python·typescript·无人机
qq5_8115175157 小时前
web城乡居民基本医疗信息管理系统信息管理系统源码-SpringBoot后端+Vue前端+MySQL【可直接运行】
前端·vue.js·spring boot
百思可瑞教育7 小时前
构建自己的Vue UI组件库:从设计到发布
前端·javascript·vue.js·ui·百思可瑞教育·北京百思教育
百锦再7 小时前
Vue高阶知识:利用 defineModel 特性开发搜索组件组合
前端·vue.js·学习·flutter·typescript·前端框架
CappuccinoRose7 小时前
JavaScript 学习文档(二)
前端·javascript·学习·数据类型·运算符·箭头函数·变量声明
这儿有一堆花7 小时前
Vue 是什么:一套为「真实业务」而生的前端框架
前端·vue.js·前端框架
全栈前端老曹7 小时前
【MongoDB】深入研究副本集与高可用性——Replica Set 架构、故障转移、读写分离
前端·javascript·数据库·mongodb·架构·nosql·副本集
NCDS程序员8 小时前
v-model: /v-model/ :(v-bind)三者核心区别
前端·javascript·vue.js
夏幻灵8 小时前
CSS三大特性:层叠、继承与优先级解析
前端·css
小杨同学呀呀呀呀8 小时前
Ant Design Vue <a-timeline>时间轴组件失效解决方案
前端·javascript·vue.js·typescript·anti-design-vue