Babel 7支持ES.Next提案和TypeScript

栏目: JavaScript · 发布时间: 6年前

内容简介:一年多以前,我们开始寻找用户在使用TypeScript时遇到的最大困难,我们发现Babel用户面对的一个共同问题是使用ypeScript太难了。原因各不相同,但对于很多开发人员来说,重构已经正在运行的构建可能是一项艰巨的任务。

Babel 7 带来了很多重大变更和改进,包括对TypeScript转换的支持以及更好的用于管理ES.Next提案的方法。

Babel和TypeScript团队合作 ,让Babel可以用@babel/preset-typescript解析和转换类型语法。Babel已经可以支持Flow,Babel团队的目标是为一些 工具 提供支持,这些工具可以让JavaScript用户利用渐进类型。TypeScript项目经理Daniel Rosenwasser解释了Babel和TypeScript团队协作的动机和好处:

一年多以前,我们开始寻找用户在使用TypeScript时遇到的最大困难,我们发现Babel用户面对的一个共同问题是使用ypeScript太难了。原因各不相同,但对于很多开发人员来说,重构已经正在运行的构建可能是一项艰巨的任务。

虽然TypeScript编译器仍然是构建TypeScript的首选方法,Babel可以处理编译和转换,但Babel没有提供内置的类型检查。这种集成可以让Babel用户利用TypeScript的拼写和错误检查优势。

定义JavaScript年度更新的工作组TC39创建了很多提案供参考。Babel 7更改了默认行为,要求用户明确选择加入版本4之前的任何特性,以防止用户无意中依赖尚未最终确定的特性。

Babel支持的TC39提案的完整列表可在 babel/proposal 中找到。

使用Babel进行配置的重大改进是在版本7中完成的,包括引入babel.config.js。这个新的配置文件是可选的,并不完全是作为.babelrc的替代,但在某些情况下,例如对于开发和生产环境的不同编译选项,预计会派上用场。

根据Babel维护者Henry Zhu所述:

*.js配置文件在JavaScript生态系统中相当常见。ESLint和Webpack分别使用.eslintrc.js和webpack.config.js配置文件。

需要注意的是,babel.config.js的配置方案与.babelrc是不一样的。新的配置文件总是从文件中解析配置,而.babelrc将查找每个文件,直到找到配置。这种方式可以利用选择性配置,并进行配置覆盖。

发布ES2015+软件包以及使用和编译这些软件包具有一定的挑战。Babel现在允许应用程序为测试、客户端源代码和服务器端代码提供不同的编译配置,不再需要为每个目录创建新的.babelrc文件。

Babel 7还为缺乏Promises和Symbols等功能的环境提供实验性的自动ployfill支持。Babel 7不会导入整个polyfill,而是只导入代码库中使用的polyfill。

Babel 7增加了更好的模块定位、用于Babel转换的调用者元数据、JSX支持、babel-upgrade工具等等。

在升级到Babel 7时需要注意几个重大变化:

  • 移除对Node.js 6之前版本的支持;
  • 使用带有作用域的@babel命名空间,以防止与官方Babel包混淆;
  • 移除年度预设,替换为@babel/preset-env;
  • 使用选择性TC39个别提案替换阶段提案;
  • TC39提议插件现在是-proposal,而不是-transform;
  • 为某些面向用户的包(例如babel-loader、@babel/cli等)在@babel/core中引入peerDependency。

在展望Babel 7之后的未来时,Zhu说:

Babel本质上与它编译的内容联系在一起:即JavaScript。只要有新的建议,就有工作要做。这包括在语法“稳定”之前用于实现和维护语法的时间和精力。我们关心整个过程:升级路径、新功能培训、标准/语言设计、易用性以及与其他项目的集成的宣传。

例如,Babel团队一直致力于 支持修订后的装饰器提案 ,该提案将包含在7.1版本中。修订后的提案与之前的提案有很大不同,增加了更多特性。 TypeScript路线图 也包括了实现修订后的ES装饰器提案的计划。

其他正在开发中的新Babel功能包括minify、插件顺序、更好的验证/错误、异步使用Babel,等等。有关详细信息,请参阅 Babel路线图

Babel基于MIT开源许可。欢迎开发者通过 Babel GitHub组织 参与贡献,并遵守Babel的 贡献指南行为准则 。也可以通过 Open Collective 进行捐款来支持该项目。

查看英文原文: Babel 7 Release Improves Support for ES.Next Proposals and TypeScript


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Computer Age Statistical Inference

Computer Age Statistical Inference

Bradley Efron、Trevor Hastie / Cambridge University Press / 2016-7-21 / USD 74.99

The twenty-first century has seen a breathtaking expansion of statistical methodology, both in scope and in influence. 'Big data', 'data science', and 'machine learning' have become familiar terms in ......一起来看看 《Computer Age Statistical Inference》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

URL 编码/解码
URL 编码/解码

URL 编码/解码

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具