1月25日,Yarn官方团队在GitHub issue中宣布将对Yarn进行重大更改,主要包括:将代码库从Flow移植到TypeScript,不再支持Node 4和Node 6,并为Yarn新增了一些功能等,这个更改项目代号为Berry,目的是增强Yarn优势,弥补弱势。

Yarn是Facebook开源的一款号称代替npm的js包管理工具,相对npm来说,Yarn具有安装模块的速度更快、支持离线模式、兼容npm与bower工作流以及支持两种软件仓库混用等优势。这次的改进主要是针对Yarn v2及其之后的版本,具体规划如下。

主要变化

  • lockfile(和配置)格式将成为YAML的严格子集;

  • 添加对插件的支持;

  • Yarn将被重新设计成为API,与CLI有相似的功能,当前,在使用Yarn时,开发者唯一的选择是命令行界面,Yarn不提供实现复杂逻辑的原语(无论是解析器、链接器还是访问配置),但是,这将会有改进,以后它将可以在脚本中使用组件-无需再解析package.json的内容,无需运行解决方案等,Yarn将能抽象这些所有繁杂的工作;

  • 不再支持Node 4和Node 6;

  • 日志系统进行大修改,改用TypeScript后可以获取诊断出来的错误代码,每个错误、警告和通知都会赋予一个独特的代码,该代码将会被记录下来,并附有解释;

  • 当前的一些功能如autoclean将被移动到contrib插件中,它们仍受支持,但可能与标准bundle的发布周期不同;

  • 缓存文件格式将从Tar切换到Zip,这为随机访问提供了更好的特性;

  • Yarn代码库将从Flow移植到TypeScript中,这也是jest用TS重写之后,Facebook的又一个代码库迁移的项目。

虽说Yarn现在用的Flow很友好,但Yarn团队希望第三方贡献者能更轻松帮助他们维护Yarn,很多开发者认为,这是因为TS有很好的社区,背后有更可靠更强大的公司——微软的支持,在调试上,它可以节省大量的时间,自然也就比JavaScript更受欢迎,而且,相对Flow来说,开发者对TS更为熟悉,上手更为容易。

新增功能

  • 嵌套工作区(Nested workspaces)将支持开箱即用;

  • 无论在哪个工作区,运行yarn run foo:bar将运行foo:bar脚本;

  • 引入新的命令yarn constraints,该命令允许你跨工作区执行约束(constraints);

  • 无论底层操作系统是怎样的,在脚本字段中编写posix命令行都将起作用;

  • 缓存将完全变成原子性,多个Yarn实例将能够在同一缓存上并发运行,而不会有破坏数据的风险等。

Yarn的价值观:开发优先

Yarn团队认为程序包管理器不应该是生产服务器上运行的工具,在那里运行的代码越多,出现问题的可能性就越高,最终会导致生产系统崩溃。而Yarn以开发优先,意味着Yarn是一个开发工具,它的应用最多就是到克隆代码库这一步了,其中包括即插即用,在设计时就考虑到了这一点。

过去几年中,JavaScript项目增加的复杂性以适应人们发现的越来越多的用例,Yarn团队认为包管理应该处于一个独特的地位,帮助减少一些负担,使用户能够轻松管理他们的项目。同时,在项目或应用程序处于不安全模式时,一个合格的包管理器应该有提示或警告的责任。

由于单个项目永远无法满足开发人员的所有需求,生态圈中出现了大量的项目,但是Yarn并不打算与他们竞争,而是加强自身,赋予开发者更好的能力。

详情请查看GitHub:https://github.com/yarnpkg/yarn/issues/6953

更多内容请关注前端之巅。

Yarn将用TypeScript重写,Flow惨遭亲爹抛弃!相关推荐

  1. 当node脱离v8_Node Bug 太多惨遭创始人抛弃,前端开发要变天?

    原标题:Node Bug 太多惨遭创始人抛弃,前端开发要变天? 曾经 Node 的面世,将 Java 首次带入了后端服务器端开发,不仅让诸多的前端开发者更能轻而易举地编写出高性能的 Web 服务,同时 ...

  2. 使用Typescript重写axios

    2019独角兽企业重金招聘Python工程师标准>>> 使用typescript-library-starter脚手架创建项目ts-axios git clone https://g ...

  3. 如何将三万行代码从Flow移植到TypeScript?

    作者 | David Gomes 译者 | 弯月 责编 | 郭芮 来源 |  CSDN(ID:CSDNnews) [编者按]在内存安全中,类型安全是很重要的一个命题.为了确保JavaScript项目运 ...

  4. 如何将三万行代码从 Flow 移植到 TypeScript?

    [CSDN编者按]在内存安全中,类型安全是很重要的一个命题.为了确保JavaScript项目运行的类型安全,本文的作者介绍了2016年时使用Flow的经历:由Facebook支持的Flow方案,不仅拥 ...

  5. docwizard c++程序文档自动生成工具_如何开发一个基于 TypeScript 的工具库并自动生成文档

    为什么用 TypeScript? TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. Any ...

  6. TypeScript - 不止稳,而且快

    前言 关于 TypeScript 是什么,应该大部分人都已经知道了,但是在这儿,还是摘抄一下知乎的回答: TypeScript 是 JavaScript 的强类型版本.然后在编译期去掉类型和特有语法, ...

  7. 用typescript完成倒计时_「干货」将数十万行CoffeeScript代码迁移到TypeScript

    作者 | David Goldstein 译者 | 王强 策划 | 小智 转发链接:https://mp.weixin.qq.com/s/TK7kWXX4hR3e-jtpVMuBnw 序言 2017 ...

  8. TypeScript 3.3发布:改进了联合类型调用和构建时间

    TypeScript团队继续以双月发布节奏发布了TypeScript 3.3,这一版本改进了调用联合类型的行为以及复合项目增量文件的监听性能.该团队还宣布了未来六个月的TypeScript路线图. T ...

  9. JavaScript 类型系统方案:Flow

    2014 facebook 推出的一款弥补 JavaScript 弱类型弊端的工具.在 React/Vue 中我们都能够看到 Flow 的使用,足以见得 Flow 是一个非常成熟的技术方案. 它的原理 ...

最新文章

  1. docx文件上传java_java上传文件通过mybatis存储到数据库的blob格式中.docx
  2. java 两个值对换_java将两个整型变量值进行互换的几种实现方法
  3. 再探文件输入和输出函数
  4. linux内置变量大全,Linux进阶之bash编程四(内置变量)
  5. 【图文讲解】eclipse中配置maven环境+导入maven项目
  6. 为什么说要重视神经网络加速器
  7. lua cocos 动画回调
  8. 字符串匹配--Sunday算法
  9. Qt实用快捷键(较全面)
  10. MapReduce实现计数
  11. 如何使用SSH密钥登录你的云服务器?使用SSH密钥的好处
  12. 按钮打开Activity
  13. 手机测试耳机音质的软件,耳机音质测试软件有哪些
  14. HCNA每日一练错误
  15. DM使用过程中几个常见的问题
  16. 利用DirectoryEntry获取域内计算机以及共享资源
  17. Git 使用 stash暂存代码
  18. HTTP协议分析实验
  19. MATLAB中通用桥晶闸管的型号,基于MATLAB的电力电子技术仿真分析
  20. 破解魔术的秘密(一)——直面秘密的角落

热门文章

  1. java 反射 找不到方法_Java获取反射的三种方法
  2. python获取电脑几核几线程_python编程测试电脑开启最大线程数实例代码
  3. eclipse mybatis插件_Archetype插件的介绍和使用
  4. dev 报表设计器 怎么设置每页10行_可嵌入您系统的.NET 报表控件ActiveReports:带状列表组件...
  5. java文件客户端下载_使用Java写一个minio的客户端上传下载文件
  6. adas记录仪app_4K旗舰丨盯盯拍MINI5智能行车记录仪荣耀新生!
  7. php 引用foot.html,htmltfoot标签怎么用
  8. php获取标准输入输出,shell--标准输入输出(readamp;echo)
  9. 小数乘分数怎么算过程_GMAT分数到底怎么算?我该做对多少题GMAT才能达到700+?...
  10. pythonATM自动存取款机7天密码保护