查看原文
其他

[译]取代 npm 的新利器 Yarn

2016-10-14 Guan-Yu Pan 前端圈

感谢Jeremy翻译

最近Facebook 发布了全新的 JS 包管理工具 Yarn,如果你常发生以下几个问题,我想 Yarn 会是你的解决方案

例如同事电脑 npm install OK,我的npm install 却挂住,通常就是因为包内部相依关系与你之前的文件冲突,所以只好常常得先 sudo rm -rf node_modules/ 再重新安装。

没网络,npm install 直接挂给你看。

不同项目或不同文件夹下,都要更新某个包。

npm install 非常久,久到可以泡杯咖啡聊个天,回来都还没好。

Yarn 提供一个更快更稳定的包管理方案

通过 yarn.lock ,锁住包版本,因此可以确保安装之包在每台机器上都能保持一致。

安装过的包,都会加入到 global cache 中,下次有砍掉要重装,或是不同文件夹要装,都可以在无网络情况底下安装。

非常快,平行化处理每个 operation,全新的 resolving 演算法。

如何使用

// 以前裝過 npm 再安裝 yarn
npm install -g yarn

// 直接安装 (mac为例,其余官网有介绍)
curl -o- -L https://yarnpkg.com/install.sh | bash

// 一般安装 (等同 npm install)
yarn

// 安装特定包 (等同 npm install --save)
yarn add react
yarn add react@15.3.2

// 更新特定包 (等同 npm upgrade)
yarn upgrade react

// 移除特定包 (等同 npm uninstall)
yarn remove react

// 新增 package.json
yarn init

// 新增全域包
yarn global add

// 跑 script
yarn run

// 其他常用选项
--offline   (离线模式,只拉 cache)
--flat      (将包扁平化,一个文件夹只会有一个包)
--dev       (加入到 devDependencies)
--peer      (加入到 peerDependencies)
--optional  (加入到 optionalDependencies)


作者实测结果,非常快且没有迁移问题,可直接舍弃 npm。

虽然说原本的 npm cache-min 设定时间 999999,以及 npm shrinkwrap 锁版本,都可以达到 Yarn 所说的一些优化,不过 Yarn 本身在平行化处理部分有特别加强,也重写了解析演算法,是一个完整的包解决方案。

附注: push 到 repo 时请记得要上 yarn.lock 文件,才会确保其他机器都能安装一样的包代码。Yarn

【您可能感兴趣的文章】

一、入职新手必知的劳动法

二、组件化的css-module

三、再谈移动端适配和点5像素的由来

四、js的沙箱内容

五、高清屏概念解析与检测设备像素比的方法

六、学习设计模式前需要知道的事情

七、表单验证请进!!!

八、js高级语法之模式

九、[VueJS] V1 与 V2 组件实体之差异

十、优化你的DOM



前端圈--打造专业的前端技术会议

为web前端开发者提供技术分享和交流的平台

打造一个良好的前端圈生态,推动web标准化的发展

官网:http://fequan.com

微博:fequancom | QQ群:41378087


长按二维码关注我们

投稿:content@fequan.com

赞助合作:apply@fequan.com


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存