ES6->ES5的转换*
1.下载依赖
**
cnpm install --save-dev babel-cli babel-preset-latest
2.在项目根目录下创建.babelrc
{
"presets":["latest"]
}
3.开始转换
转码结果输出到标准输出
babel a.js
转码结果写入一个文件,--out-file 或 -o 参数指定输出文件
babel a.js --out-file b.js
整个目录转码 --out-dir 或 -d 参数指定输出目录
babel src --out-dir dist
模块化
ES6模块化
**
导出
export{a,b} //列表导出
export{a as aa,b} //重命名导出
export var e= 1; //导出单个属性
export function test(){} //导出单个属性
导出的是接口,接口内有数据,接口内有 a,b,aa,e,test
默认导出,一个模块只能有一个默认导出,不能使用 var、let 或 const 用于导出默认值 export default
export default{}
导入
import * as person from './person.js'//导入整个模块内容
import {firstName,lastName} from './person.js' //导入多个接口
import {firstName as name} from './person.js' //重命名
import '/modules/my-module.js'; //运行整个模块而不导入任何值
import myDefault from './my-module.js'; // 导入使用export default导出的模块
CommonJS模块化–>NodeJS模块化
导出
module.exports = {
name:'zhangsan',
age:12
};
导入
let obj = require('./a.js')
let {name} = require('./a.js')
两者的区别
ES6导出的是接口,是引用,编译时加载,静态加载,按需导入(需要什么导入什么)
CommonJS导出的是对象,是值的拷贝,运行时加载,按需解构
两者是平行关系