🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
bable 是一个工具链,主要用于将 ECMAScript 2015+ 版本的代码转换为向后兼容的 JavaScript 语法,以便能够运行在当前和旧版本的浏览器或其他环境中。 bable配置比webpack简单很多,webpack里面的`bable-loader`就是用来调用babel的。 bable的配置文件叫做`.bablerc`。babel主要有`env`配置和`plugins`配置。 env配置主要配置各种presets,plugins配置主要配置插件。 ***** ### env: 以下为bable 7的env: ![](https://box.kancloud.cn/3a5ecb5d9acc5d7a629a99a0fa979600_236x470.png) 以下为bable 6的env: ![](https://box.kancloud.cn/e59481a63449112cb01aba88f3a6135c_252x672.png) 其中stage-x表示ES提案到什么阶段,最新的bable不支持stage-x的env,转而使用`plugin-proposal-x`. [https://segmentfault.com/a/1190000016541105](https://segmentfault.com/a/1190000016541105) [https://www.vanadis.cn/2017/03/18/babel-stage-x/](https://www.vanadis.cn/2017/03/18/babel-stage-x/) 真实配置文件如下: ```js { "comments": false, "env": { "test": { "presets": [ ["env", { "targets": { "node": 7 } }], "stage-0" ], "plugins": ["istanbul"] }, "main": { "presets": [ ["env", { "targets": { "node": 7 } }], "stage-0" ] }, "renderer": { "presets": [ ["env", { "modules": false }], "stage-0" ] }, "web": { "presets": [ ["env", { "modules": false }], "stage-0" ] } }, "plugins": ["transform-runtime"] } ``` 其中,env的test, main, web等,是环境变量,可以再webpack中设置: ```js process.env.BABEL_ENV = 'main' ``` 加上配置参数"target",它表示我们需要支持哪些平台+哪些版本。这里声明我们要支持的是node版本为7.x.x。 #### targets: { \[string\]: number },默认{} 需要支持的环境,可选例如:chrome, edge, firefox, safari, ie, ios, node,甚至可以制定版本,如node: 6.5。也使用node: current代表使用当前的版本。 #### browsers: Array\\| string,默认\[\] 浏览器列表,使用的是[browserslist](https://github.com/ai/browserslist),可选例如:last 2 versions, > 5%。 #### loose: boolean,默认false 是否使用宽松模式,如果设置为true,plugins里的插件如果允许,都会采用宽松模式。 #### debug: boolean,默认false 编译是否会去掉console.log。 #### whitelist: Array\\,默认\[\] 设置一直引入的plugins列表。 ***** ### plugins `babel-ployfill` `transform-runtime`