写点什么

Yarn 将用 TypeScript 重写,Flow 惨遭亲爹抛弃!

2019 年 1 月 26 日

Yarn将用TypeScript重写,Flow惨遭亲爹抛弃!

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


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



2019 年 1 月 26 日 07:008315
用户头像

发布了 83 篇内容, 共 41.5 次阅读, 收获喜欢 182 次。

关注

评论

发布
暂无评论
发现更多内容

【原创】SpringBoot 这几种配置文件方式,你都用过吗?

田维常

spring Boot Starter

【原创】Spring Boot集成Redis的玩法

田维常

spring Boot Starter

【原创】Spring Boot集成Mybatis的玩法

田维常

spring Boot Starter

WebSocket连接错误Error during WebSocket handshake Unexpected response code 404

李浩宇/Alex

【原创】SpringBoot快速整合Thymeleaf模板引擎

田维常

spring Boot Starter

【原创】Spring Boot 如何手写stater

田维常

spring Boot Starter

一站式低延迟直播连麦解决方案

anyRTC开发者

音视频 WebRTC 直播 RTC sdk

国家超算深圳中心计划2年内提升计算能力至少1000倍;图神经网络的生成式预训练论文解读

京东智联云开发者

云计算

详解软件行业低代码开发平台以及敏捷开发方案

Marilyn

敏捷开发

【原创】Spring Boot 过滤器、监听器、拦截器的使用

田维常

spring Boot Starter

华为20级工程师吐血整理出600页Spring微服务架构设计,绝了!

996小迁

Java spring 编程 架构 spring微服务

MySQL-技术专题-STRAIGHT_JOIN

李浩宇/Alex

浅析一个较完整的SpringBoot项目

田维常

spring Boot Starter

【原创】Spring Boot终极篇《下》

田维常

spring Boot Starter

MySQL-技术专题-创建临时表

李浩宇/Alex

用时半个月,终于把2020年各大公司的Java面试题精选整理成文档了

Java架构之路

Java 架构 面试 编程语言

阿里P8架构师呕心沥血整理的【Docker实战】文档带你玩转Docker。

Java架构之路

Java 程序员 架构 面试 编程语言

阿里P8Java大神给迷茫的程序员一些中肯建议:“请不要再虚度光阴了!”

Java架构之路

Java 阿里巴巴 程序员 架构 编程语言

华为云“创原会”:40+技术精英论道云原生2.0

华为云开发者社区

k8s 华为云

区块链数字货币商城系统开发技术

薇電13242772558

区块链 数字货币

交易所画k线市值管理机器人,做市机器人开发

WX13823153201

产品经理团队的管理秘法

马踏飞机747

管理 产品经理 团队

Spring Boot 集成 Druid 监控数据源

田维常

spring Boot Starter

华为云FusionInsight湖仓一体解决方案的前世今生

华为云开发者社区

数据库 华为 仓库

如何快速构建Spring Boot基础项目?

田维常

spring Boot Starter

【原创】Spring Boot一口气说自动装配与案例

田维常

spring Boot Starter

为什么11·11物流一年比一年快?奥秘就在这里!

华为云开发者社区

物联网 物流 仓储

【原创】Spring Boot 集成Spring Data JPA的玩法

田维常

spring Boot Starter

Spring Boot 如何快速实现定时任务

田维常

spring Boot Starter

【原创】Spring Boot终极篇《上》

田维常

spring Boot Starter

想不通(关于人生的突发奇想)

干啥啥不行的赢

NLP领域的2020年大事记及2021展望

NLP领域的2020年大事记及2021展望

Yarn将用TypeScript重写,Flow惨遭亲爹抛弃!-InfoQ