2KB项目,专业的源码交易网站 帮助 收藏 每日签到

Yarn 可以为你做的五件事

  • 时间:2019-01-23 18:27 编辑:2KB 来源:2KB.COM 阅读:339
  • 扫一扫,手机访问
  • 分享
摘要: 英文原文:5 t
英文原文:5 things you can do with Yarn

摘要:在 JavaScript 的领域,有好几种包管理器:npmbowercomponent volo 等。在写这篇文章的时候,最流行的 JavaScript 包管理器是 npm。通过 npm 客户端可以访问 npm 资料库中成千上万的代码。就在前不久,Fackbook 发布了一个新的 JavaScript 包管理器,Yarn,声称它比 npm 更快、更可靠,而且更安全。在这篇文章中,你能了解到可以使用 Yarn 做的 5 件事。

Yarn 是 Facebook 创造的 JavaScript 包管理器。他向在应用中使用 JavaScript 的开发者提供了快速、高可靠性安全依赖的包管理。

其它翻译版本 (1) 加载中

1. 离线工作

Yarn 提供了离线工作模型。如果你以前安装过某个包,那你就可以在没有互联网连接的情况下再次安装。下面是一个典型的例子:

我在连接到互联网的时候用 Yarn 安装了两个包:

用 yarn init 创建了 package.json

用 yarn 安装 express 和 jsonwebtoken

安装完成

安装完成之后我删除了 orijin 目录下的 node_modules,并且断开互联网。然后像下面这样运行 Yarn:

Yarn 在离线状态下安装包

看!所有包在2秒之内就就完成了安装。看来 Yarn 会缓存下载的每个包,之后就不需要再次下载了。Yarn 会通过并行最大化利用资源,所以安装起来比以往[译者注:指以往用 npm 的方式]更快。

2. 从多个资料库安装

Yarn 可以从多个资料库安装 JavaScript 包,这些资料库包括 npm、bower、Git 库甚至本地文件系统。

默认情况下,它会在 npm 资料库中扫描你需要的包:

yarn add <pkg-name>

你下面这样可以从远程安装一个 gzip 压缩包:

yarn add <https://thatproject.code/package.tgz>

下面会从本地文件系统安装包:

yarn add file:/path/to/local/folder

从本地文件系统安装包对持续发行 JavaScript 包的开发者特别有帮助。你可以在把包发行到资料库之前通过这个功能测试你的包。

从远程 Git 库安装包:

yarn add <git remote-url>

Yarn 从 Github 安装包

Yarn 还会自动检查 Git 库是否是作为 Bower 资料库使用,如果是则把它当作 Bower 资料库使用。

3. 快速获取包

使用过 npm 的人都有这样的体验,先运行 npm 进行安装,然后就可以去看场电影,回来再检查是否安装完成。好吧,也许说这么长的时间有点夸张,但是 npm 确实会花很长的时间用于遍历依赖树,并摘取依赖包。Yarn 已经实实在在地把安装等待时间从分钟级别降低到秒级。

Yarn 高效地将请求组成队列,避免大量使用网络资源。它从请求资料库开始,然后递归检查每荐依赖。然后它会在公共的缓存目录查找所需要所包是否已经下载过。如果没有,Yarn 会将压缩包下载到公共缓存,使之可以离线使用,避免重新下载。

安装过程中,Yarn 会进行并行操作,这使得安装过程快得多。我分别使用 npm 和 yarn 安装了 3 个包,jsonwebtokenexpress lodash。当 Yarn 完成安装的时候,npm 仍在继续。

4. 自动锁定包版本

npm 有个叫作 shrinkwrap(拆封) 的特性,其目的是在生产环境下锁定包的依赖。shrinkwrap 带来的挑战是每个开发者都必须手动运行 npm shrinkwrap 来生成 npm-shrinkwap.json 文件。但开发者也是人,所以有时候也会忘记做这事!

Yarn 使用了不同的规则,它会在安装过程中自动产生 yarn.lock 文件。这个文件与 PHP 开发者所熟知的 composer.lock 文件类似。yarn.lock 文件会锁定安装的包及其依赖包的准确版本。这个文件可以确保团队中每一个成员都安装了版本完全相同的包,这样一来,开发过程就可以在无差异的情况下多次进行。

5. 在不同的设备中以相同的方式安装依赖

npm 客户端安装依赖项的方式可能造成开发者 A 的 node_modules 目录结构与开发 B 的 node_modules 目录结构不同。它使用不具确定性的方法来安装依赖项,因此有时候会造成难以重现的错误。

Yarn 通过锁定文件和安装算法确保在不同的的设备中,以及在生产环境中,安装的依赖都是相同和文件和相同的目录结构。

注意:还有一件事,我知道我已经说完 5 件事了,但是我不能抑制住自己,我想告诉你们 Yarn 给我多么好的感觉。企业环境需要列出依赖项的许可类型。Yarn 可以通过在项目根目录运行 yarn licenses ls 来列出指定依赖项的许可类型,就像下面的示例:

顺便说下:Yarn 中使用 Auth0

[译者注:原文来自 auth0.com,所以你懂的…]

Auth0 对用户的每一次登录发放 JSON Web 令牌。这就是说,你只需要少量代码就能实现一个固定的身份基础,包括单点登录、用户管理、支持社区身份[译者注:即常说的第三方登录](Facebook、Github、Twitter 等)、企业身份(活动目录、LDAP、SAML 等),以及你自己的用户数据库。

我们可以使用锁部件在 JavaScript 中很容易地实现授权管理。你可以用 Yarn 安装 Auth0 的锁部件:

yarn add auth0-lock

安装这个部件只需要几秒就能完成,yarn.lock 文件可以锁定准确的版本。如果你没有 Auth0 账号,赶快去注册一个。访问 Auth0 的管理面板,从菜单中选择应用程序,然后选择一个应用,这个应用会连接你使用的 JavaScript 框架。现在看看快速开始文档,选择你要建立的应用类型,并按高亮的步骤进行。

小结

Yarn 一开始就为 JavaScript 获取包的方式带来了重大改进,允许从公共资料库获取包,也允许从本地环境获取,更重要的是为它还充分考虑了速度和安全性。

其它翻译版本 (1) 加载中 本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接。 2KB翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。


2KB项目(www.2kb.com,源码交易平台),提供担保交易、源码交易、虚拟商品、在家创业、在线创业、任务交易、网站设计、软件设计、网络兼职、站长交易、域名交易、链接买卖、网站交易、广告买卖、站长培训、建站美工等服务

  • 全部评论(0)
资讯详情页最新发布上方横幅
最新发布的资讯信息
【计算机/互联网|】Nginx出现502错误(2020-01-20 21:02)
【计算机/互联网|】网站运营全智能软手V0.1版发布(2020-01-20 12:16)
【计算机/互联网|】淘宝这是怎么了?(2020-01-19 19:15)
【行业动态|】谷歌关闭小米智能摄像头,因为窃听器显示了陌生人家中的照片(2020-01-15 09:42)
【行业动态|】据报道谷歌新闻终止了数字杂志,退还主动订阅(2020-01-15 09:39)
【行业动态|】康佳将OLED电视带到美国与LG和索尼竞争(2020-01-15 09:38)
【行业动态|】2020年最佳AV接收机(2020-01-15 09:35)
【行业动态|】2020年最佳流媒体设备:Roku,Apple TV,Firebar,Chromecast等(2020-01-15 09:31)
【行业动态|】CES 2020预览:更多的流媒体服务和订阅即将到来(2020-01-08 21:41)
【行业动态|】从埃隆·马斯克到杰夫·贝佐斯,这30位人物定义了2010年代(2020-01-01 15:14)
联系我们

Q Q: 7090832

电话:400-0011-990

邮箱:7090832@qq.com

时间:9:00-23:00

联系客服
商家入住 服务咨询 投拆建议 联系客服
0577-67068160
手机版

扫一扫进手机版
返回顶部