当前位置: 首页 > news >正文

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

🧶 一、Yarn 是什么?

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

✅ Yarn 的优势(v1.x):

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

🧑‍💻 二、Yarn 安装

✅ 使用 npm 安装(建议):

npm install -g yarn

安装完成后验证版本:

yarn -v

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

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

📁 四、Yarn 生成的文件结构

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

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

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

🟨 注意事项:不要混用 npmyarn

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

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

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


🎯 总结推荐

  • 初学者 / 官方推荐 / 保守选手 👉 使用 npm
  • 追求构建速度 / 命令简洁 / CI 优化 👉 使用 yarn
http://www.xdnf.cn/news/84043.html

相关文章:

  • AI 健康小屋:开启智慧健康管理新范式
  • Jetson Orin NX 16G 配置GO1强化学习运行环境
  • JavaFX实战:从零到一实现一个功能丰富的“高级反应速度测试”游戏
  • VSCode连服务器一直处于Downloading
  • 【C++】特殊类的设计、单例模式以及Cpp类型转换
  • MCP使用SSE和STDIO模式时,mcp client 如何连接
  • 【随手记】jupyter notebook绘制交互式图像
  • Element UI、Element Plus 里的表单验证的required必填的属性不能动态响应?
  • Anaconda、conda和PyCharm在Python开发中各自扮演的角色
  • Docker 中运行 JAR 文件
  • std::vector 自定义分配器
  • 第六章 QT基础:2、编程基础及串口助手案例
  • 一文读懂什么是 MCP、A2A、ANP
  • TypeScript十大关键语法
  • 第44讲:玩转土壤数据!用机器学习挖掘地球皮肤的秘密 [特殊字符][特殊字符]
  • 集成算法学习案例
  • Open GL ES -> 模版测试,绘制SurfaceView中某个目标区域
  • 【目标检测】对YOLO系列发展的简单理解
  • SharpMap与TerraLib:C#与C++开源GIS库
  • Docker Compose常用命令
  • S32K144学习(16)-Bootloader
  • NLP高频面试题(五十)——大模型(LLMs)分词(Tokenizer)详解
  • uniapp-商城-33-shop 布局搜索页面以及u-search
  • QTextDocument 入门
  • 多路转接poll服务器
  • MySQL 启动报错:InnoDB 表空间丢失问题及解决方法
  • 基于STM32的室内环境监测系统
  • .NET下 using 块的作用
  • 正则表达式
  • 【AAudio】A2dp sink创建音频轨道的源码流程分析