{ "presets": [ "es2015", "stage-0" ], "plugins": [] }
babel-preset-react
我们的项目期望使用React开发,所以需要拓展支持React/JSX语法,安装预设:
yarn add --dev babel-preset-react
.babelrc 配置文件内添加:
{ "presets": [ "es2015", "stage-0", "react" ], "plugins": [] }
babel-polyfill
至此,使用Babel,我们的·项目几乎可以支持所有的ES6及ES7语法,但是对于新增的JavaScript API是无能为力的,如Symbol这种新API,并不是通过语法转换能实现的,所以我们需要另外的方式解决。
业内提出了Polyfill(填充),以添加额外代码的方式使得当前运行环境支持不存在的原生Api ,拓展了尚处在推进阶段的API的使用范围。
yarn add babel-polyfill
此处不需要添加--dev参数。
然后在文件入口引入即可:
import "babel-polyfill";
babel-runtime
前面提到的Babel通过转换语法以支持我们以ES6等更新的语法方式开发代码,这时Babel会在每一个处理的文件头部注入辅助代码,会产生很多冗余,重复性的内容,导致代码量暴增,所以我们需要将这些辅助代码抽取至一个统一环境,Babel提供的就是运行时(runtime)环境。
要实现Babel运行时环境,需要安装 babel-plugin-transform-runtime 和 babel-runtime
:
yarn add --dev babel-plugin-transform-runtime babel-runtime
然后更新 .babelrc:
{ "plugins": [ "transform-runtime", ] }
按需加载(babel-plugin-import)
很多时候,我们开发业务并不需要自制UI,会选择一些开源组件库以快速开发实现产品,如antd,weui,material-ui等,我们可以选择直接提前加载三方库所有模块,但是很多时候我们希望能实现按需加载,减少初始代码包的体积,这时,我们可以在babel配置文件中声明按需加载该第三方库,当然首先得安装插件babel-plugin-import
:
yarn add --dev babel-plugin-import
然后在配置文件.babelrc中添加配置:
{ "plugins": [ "import", { "style": "../styles", // 加载样式解析方式,(值为true时,可能是less/Sass),此处值设为相对libraryName具体模块请求路径值 "libraryDirectory": "", // 加载包的目录,(默认是lib,即node_modules/lib/) "libraryName": "material-ui" // 加载三方组件库名,当然另外需要安装该三方库 } ] }
内容版权声明:除非注明,否则皆为本站原创文章。