森泥.酷哦

加油,小可耐!

Bable 7 新特性

工具 0 评 74 度

Babel 7(2018年8月份) 主要改变

1、不支持Node:0.10,0.12,4,5版本

2、更换命名-@babel/xxx

3、移除以年份命名的presets,统一更换成@babel/preset-env

4、移除 ’Stage‘ presets,同时移除@babel/polyfill的default mport

5、TC39 proposal plugin will now be -proposal instead of -transform(将未正式的语言规范所用的插件加上-proposal-标识)

6、将@babel/core 包作为所有babel 包的提前依赖

7、新增 babel.config.js 配置文件

8、更快的编译速度

9、preset 和 plugin 提供 Options 配置,

{  "plugins": [   
      ["pluginA", { +     // options here +   }],  
 ]}

10、"Pure" Annotation Support

11、TC39 Proposals Support

12、TypeScript Support (@babel/preset-typescript)

13、JSX Fragment Support (<>)

14、Babel Helpers Changes:

  • @babel/runtime 分离成 @babel/runtime And @babel/runtime-corejs2(前者包括 Babel's helper functions 后者包括polyfill functions (e.g. Symbol, Promise)
  • @babel/plugin-transform-runtime and @babel/runtime (as a dependency) 抽离重复使用的函数

15、动态引入Polyfill配置:

[@babel/preset-env,{"useBuiltIns: "usage"}]

Babel 7.4.0 (2019年3月份)

1、support for TypeScript 3.4,

2、@babel/preset-env and @babel/transform-runtime now support core-js@3

有了core-js@3就不需要@babel/polyfill,@babel/polyfill包含core-js@2和regenerator-runtime这两个包

Babel 7.7.0 (2019年11月份)

1、support for TypeScript 3.7

2、includes new parser features like top-level await (await x(), Stage 3) and Flow enum declarations

4、Babel now understands three new configuration files: babel.config.json, babel.config.cjs and .babelrc.cjs

3、Babel 7.7.0 uses 20% less memory than 7.6.0.

参考资料:

https://github.com/zloirock/core-js/blob/master/docs/2019-03-19-core-js-3-babel-and-a-look-into-the-future.md

https://www.babeljs.cn/blog/2019/03/19/7.4.0

原型模式