babelrc
/*
.babelrc文件由preset和plugins组成,作用是让编码人员放心使用大部分JavaScript方法,然后编译成大部分浏览器兼容的代码
*/
{
"presets"
: [插件
[
"env"
, { //官方推荐使用babel-preset-env来替代一些插件包的安装
//这个{开始的内容是options配置
"modules"
:
false
,//
modules通常都会设置为false,因为默认都是支持CommonJS规范,同时还有其他配置参数:"amd" | "umd" | "systemjs" | //
//
"commonjs"
"targets"
: {
//
targets可以制定兼容浏览器版本
"browsers"
: [
"> 1%"
,
"last 2 versions"
,
"not ie <= 8"
]//
如果设置了browsers,那么就会覆盖targets原本对浏览器的限制配置
。
}
}],
"stage-2" //Babel主要提供以下几种转义器包(babel-preset-stage-0/1/2/3)
//对应配置文件的配置项(stage-0/1/2/3)
],
"plugins"
: [
"transform-vue-jsx"
,
"transform-runtime"
,[
"component"
, [
//transform-runtime是个插件,它是
为了解决全局对象或则全局方法编译不足的情况,但是他只会对es6 //
语
法进行转换,而不会对新api进行转换。
{
"libraryName"
:
"mint-ui"
,
"style": true
}
]]]
}
|
Babel:下一代JavaScript语法编译器,让你放心使用大部分JavaScript的新的标准方法,然后编译成兼容绝大多数主流浏览器的代码。(对于新的JavaScript,不同版本浏览器对此会有兼容问题)在项目工程脚手架中,一般会使用.babelrc文件,再通过配置一些参数配合webpack进行打包压缩。
Babel转译器---
.babelrc:对
预设(presets)何插件(plugins)进行配置。
有三大不同配置项的转译器:
-
语法转义器:主要对JavaScript最新的语法糖进行编译,并不负责转译JavaScript新增的api和全局对象。
-
补丁转义器:主要负责转译JavaScript新增的api和全局对象他。
-
jsx和flow插件:这类转译器用来转译JSX语法和移除类型声明的,使用Rect的时候可以用到。
创建预设(presets)
主要通过npm安装babel-preset-xx 插件来配合使用,eg:npm install babel-preset-satge-2
{
"presets":[
["env",options],
"stage-2"
]
}
options配置:
{
"targets":{
"chrome":52,
"browser":["last 2 versions","safari 7"],
"node":"6.10"
}
"modules":false
}
target可以指定兼容浏览器版本,如果设置了browsers,那么就会覆盖targets原本对浏览器的限制配置
targets.node正对node版本进行编译
modules通常都会设置false,因为都是默认支持CommonJS规范,同时还有其他配置参数:“amd"|"umd"|"systemjs"|"commonjs"
eg:amd规范,在ng1中会用到的比较多,主要用于依赖注入:
define(['jquery'],function($){
function myFunc(){};
return myFunc;
})
stage-2配置:
babel主要提供了以下几种转义器包,括号里面是对于配置文件的配置项(babel-preset-stage-0,babel-preset-stage-1,babel-preset-stage-2,babel-preset-stage-3),不同阶段的转译器之间是包含关系。如babel-preset-stage-0包含babel-preset-stage-1,以此类推。
插件(plugins)