Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >yarn -- 新型包管理器

yarn -- 新型包管理器

作者头像
用户1394570
发布于 2018-08-08 01:57:54
发布于 2018-08-08 01:57:54
63300
代码可运行
举报
文章被收录于专栏:carvencarven
运行总次数:0
代码可运行

node 包管理器

随着nodejs的出现,另外两个东西也进入了前端大众的视野–CommonJS规范node 包管理器

说到node 包管理器,就不得不提npm,毕竟是官方标配,安装了node就自带了npmnpm + nodejs,构成了一个宏伟了前端世界。 当然,出于各种原因,市面上还存在着各种包管理器,比较著名的端资源包管理器 – ‘bower’; 镜像为主的cnpmtnpm; 工具提供的rnpmspm; 还有很多其他的(我也没用过):jamjscomponent

今天,想向大家介绍的是yarn– 2016.10.11 Facebook 正式发布的 javascript 包管理器, 用来替代npm。 我在一次偶然的升级react native的时候,接触了yarn(react native已经将自家的yarn融入安装环境中)。 一遍文章《Yarn: A new package manager for JavaScript》讲述了yarn的诞生历程。

简介

yarn 是Facebook与 Exponent、 Google 和 Tilde 进行合作,开源的 JavaScript 包管理器。 旨在针对npm使用过程中的一些问题,提供更好的包管理方式,同时兼容 npmbower 工作流。

特点

npm的问题

  • 安装依赖包不稳定。 不同平台、不同用户、不同次安装的依赖可能不一样(因为npm的依赖安装顺序具有不确定性)。
  • 安装耗时过长。 npm在安装包的时候,采取队列式安装:只有前一个包安装完,才会安装下一个包。一个包失败,安装任务结束。
  • 安全性(这方面认识不是很深刻)

yarn的亮点

  • 稳定的依赖分析。 yarn会自动生成一个yarn.lock文件,记录包版本,把安装的软件包版本锁定在某个特定版本,并保证所有机器安装结果一样;对于不匹配的依赖版本的包创立一个独立的包,避免创建重复的
  • 急速安装。 yarn采用了新的算法来保证速度;同步执行所有任务;一个包安装失败的时候,会自动重试;对于已经安装过的包,会做全局缓存,避免重复下载(可实现离线安装)。
  • 安全性。 下载前会检查签名和包完整性
  • 同时,yarn还优化了cli信息输出,命令行简介语义化等。

安装过程

借用译文《Facebook 发布了新的 Node 模块管理器 Yarn,或取代 npm 客户端》

1、 处理: Yarn 通过向代码仓库发送请求,并递归查找每个依赖项,从而解决依赖关系。 2、 抓取: 接下来,Yarn 会查找全局的缓存目录,检查所需的软件包是否已被下载。如果没有,Yarn 会抓取对应的压缩包,并放置在全局的缓存目录中,因此 Yarn 支持离线安装,同一个安装包不需要下载多次。依赖也可以通过 tarball 的压缩形式放置在源码控制系统中,以支持完整的离线安装。 3、生成: 最后,Yarn 从全局缓存中把需要用到的所有文件复制到本地的 node_modules 目录中。

安装使用

yarn保持现有的工作流成特性,使用npm仓库。 所以基本是无代价兼容现有前端项目的,可以放心使用。

安装

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
npm install -g yarn

是的,使用npm安装哈,简单便捷,和和气气。

可以配置一下国内仓库 常用的淘宝镜像

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
yarn config set registry https://registry.npm.taobao.org

厂内的tnpm镜像

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
yarn config set registry http://r.tnpm.oa.com

命令行

yarn的命令行功能基本与npm处于对等状态。

常用命令行对比:

初始化
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
yarn init // npm init
安装全部依赖
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
yarn // npm install
安装某个依赖
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
yarn add react        // npm install react --save
yarn remove react     // npm uninstall react --save
yarn add react --dev  // npm install react --save-dev
yarn global add react // npm install react -g
更新依赖
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
yarn upgrade react    // npm update react --save
运行
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
yarn run start        //npm run start

end

yarn才刚刚起步,截致博文时间的时候,版本是0.17.6,github issues也有很多反馈(目前我还不知道有什么bugs)。 但是,yarn确实受到很多人的关注和期待。 我也好好好好期待。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
初识 yarn 包管理工具
facebook 在 npm 之后又造了一个软件包管理器轮子 yarn,yarn 是为了弥补 npm 的一些缺陷而出现的
很酷的站长
2022/12/16
3320
初识 yarn 包管理工具
NuGet程序包管理器
 开发过程中几乎不可避免地要使用第三方包,当然可以不用包管理器。对于开源的项目可以直接引用源文件,预先构建好了的库也可以直接引用dll。但是用nuget之类的包管理器可以更方便地进行管理,比如最基本的安装、更新、卸载功能可以直接通过命令行或者IDE来操作。
鱼找水需要时间
2024/03/18
1720
NuGet程序包管理器
记录一次切换包管理器引发的血案
我们现在的项目统一用 yarn 进行包管理,之前有一个旧项目之前使用的是 npm 进行管理。于是我决定切换一下。
GopalFeng
2022/08/01
4880
记录一次切换包管理器引发的血案
你真的知道 NPM、Yarn 与 PNPM 这三个前端包管理器之间的区别吗?
在当代的Web开发过程中,JavaScript项目的构建离不开各种外部依赖,无论是实用的库、辅助工具还是其他类型的资源。这些依赖项的管理,已经成为了开发者日常不可或缺的一部分。NPM、Yarn和PNPM这三个包管理器,就像是开发者的得力助手,它们在项目开发中扮演着至关重要的角色。本文将带你一探究竟,了解这些工具的魅力所在,并帮助你选择适合自己项目的包管理器。
前端达人
2024/04/12
4.6K0
你真的知道 NPM、Yarn 与 PNPM 这三个前端包管理器之间的区别吗?
Node.js包管理器Yarn的入门介绍与安装
FAST, RELIABLE, AND SECURE DEPENDENCY MANAGEMENT. 就在前不久, Facebook 发布了新的 node.js 包管理器 Yarn 用以替代 npm 。咱虽然是个半桶水的咸鱼前端,不过也得跟上 Javascript 这股潮 (hong) 流 (huang) 的脚步,所以便有了下面这篇文章。大概的浅尝了一下这个自称是又快又可信赖又安全的包管理,所以写的内容不会很详细,更多的可能只是针对这个全新的包管理与 npm 的不同之处来对比。也可能有些地方写得不对,如果有的
用户1174387
2018/01/17
1.7K0
Node.js包管理器Yarn的入门介绍与安装
lerna 包管理器
Lerna 是一种工具,针对 使用 git 和 npm 管理多软件包代码仓库的工作流程进行优化。 多包管理器 安装 npm i lerna -g 命令 init 项目初始化 lerna init // 默认初始化 lerna init --independent // 使用独立版本模式 lerna init --exact init 生成目录 packages/ // 默认包目录 package.json lerna.json // lerna 配置 bootstrap 为所有包安装依赖
copy_left
2020/10/27
1.4K0
新一代包管理工具yarn
本文介绍了一种新一代的包管理工具Yarn,它具有快速、可靠、安全的特点,支持离线模式、依赖确定性、更好的网络性能、多注册来源处理、网络弹性处理、扁平模式以及安装和更新。同时,作者比较了Yarn和npm在速度、常用命令、使用注意点等方面的差异。
IMWeb前端团队
2018/01/08
1.5K0
新一代包管理工具yarn
前端核心工具:yarn、npm、cnpm三者如何优雅的在一起使用 ?
在 JavaScript 编写中,我们尽量不要定义全局变量,封装函数尽量不要有副作用,因为全部变量的查询时间会比局部变量的查询慢,更是考虑在Node的环境中无法被垃圾回收的问题
桃翁
2019/06/03
1.9K0
关于现代包管理器的深度思考——为什么现在我更推荐 pnpm 而不是 npm/yarn?
很长时间没有更新原创文章了,但是还一直在思考和沉淀当中,后面公众号会更频繁地输出一些前端工程相关的干货,希望对大家有一些启发,也希望在实际的工作当中帮助大家提升效率。
用户3806669
2021/03/10
3.1K0
前端包管理工具 npm yarn cnpm npx
持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第3天,点击查看活动详情
虎妞先生
2022/10/27
8920
前端包管理工具 npm yarn cnpm npx
从 vue3 和 vite 源码中,我学到了一行代码统一规范团队包管理器的神器
我们项目开发时,常需要安装依赖,虽说一般用文档可以说明。但不是比较强制的约束。是人就容易犯错或者疏忽,假如规定是用的npm,而团队里有人某一天不小心使用了其他包管理器安装了的其他依赖,上传了代码,严重时可能导致线上问题。所以我们需要借助工具(代码)来强制约束。
若川
2021/12/01
1.3K0
从 vue3 和 vite 源码中,我学到了一行代码统一规范团队包管理器的神器
JavaScript 包管理器
npm、yarn、pnpm 都是现代化的 JavaScript 包管理器,它们的异同如下:
yiyun
2023/05/18
1K0
JavaScript 包管理器
yarn的安装与配置(Windows/macOS)
Yarn是一个现代化的、快速的依赖管理工具,它最初由Facebook开发并在2016年推出,主要服务于JavaScript项目,尤其是那些基于Node.js的项目。Yarn旨在解决npm(Node Package Manager)的一些不足,比如安装速度慢、依赖管理不一致性和网络问题。Yarn通过以下核心特性提升了开发者体验:
空白诗
2024/06/14
1.2K0
npm包管理器基本使用
NPM是随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问题,常见的使用场景有以下几种:
meowrain
2021/04/22
6190
npm包管理器基本使用
Yarn安装与使用详细介绍
在 Node 生态系统中,依赖通常安装在项目的 node_modules 文件夹中。然而,这个文件的结构和实际依赖树可能有所区别,因为重复的依赖可以合并到一起。npm 客户端把依赖安装到 node_modules 目录的过程具有不确定性。这意味着当依赖的安装顺序不同时,node_modules 目录的结构可能会发生变化。这种差异可能会导致类似“我的电脑上可以运行,别的电脑上不行”的情况,并且通常需要花费大量时间定为与解决。
零式的天空
2022/03/26
13.5K0
前端小技巧
刚开始前端的时候,工具得用好,就能事半功倍,咱们知道前端开发比较常用的包管理器有两种,那就是yarn和npm,那到底有什么区别呢?来看看。
希里安
2023/10/30
1720
前端小技巧
前端包管理工具与配置项
任何一个项目的构建离不开工具和统一的管理标准,在项目开发和维护过程中,我们需要了解安装包的相应工具和配置文件,以此来有效的进行项目的迭代和版本的更新,为项目提供基本的运行环境。
程序员海军
2023/11/07
5410
Node入门教程(7)第五章:node 模块化(下) npm与yarn详解
Node的包管理器 JavaScript缺少包结构的定义,而CommonJS定义了一系列的规范。而NPM的出现则是为了在CommonJS规范的基础上,实现解决包的安装卸载,依赖管理,版本管理等问题。 CommonJS是一个致力于构建统一的JS生态系统,它可以兼容web服务器、桌面应用、命令行应用、浏览器等。它定义了各种开发的规范和API不仅仅模块化相关的规范) 官网的说明: a group with a goal of building up the JavaScript ecosystem for we
老马
2018/04/16
1.1K0
npm、yarn与pnpm详解
🔍 简介: npm是随Node.js一起安装的官方包管理工具,它为开发者搭建了一个庞大的资源库,允许他们在这个平台上搜索、安装和管理项目所必需的各种代码库或模块。
空白诗
2024/06/14
4620
npm、yarn与pnpm详解
包管理工具
前端的包管理工具相信大家一定不会陌生,因为每天都需要跟他打交道,新项目或者刚拉下来的前端项目都需要去 install 依赖进行包的依赖安装,大家最熟悉的应该就是 npm 了,或者国内的 npm 镜像包 cnpm ,大家熟称为淘宝镜像
离殊
2022/04/01
2.7K0
包管理工具
相关推荐
初识 yarn 包管理工具
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文