Node.js与ES632_babel6
一、export和import
ES6在语言标准的层面上,实现了模块功能。ES6 模块不是对象,而是通过export命令显式指定输出的代码,再通过import命令输入。遗憾的是export和import命令不能在浏览器直接使用,不过可以通过babeI转换为es5再运行。import导入模块、export导出模块。
模块化就是把代码进行拆分,方便重复利用。类似java中的导包:要使用一个包,必须先导包。
模块功能主要由两个命令构成: export 和 import 。
- export 命令用于规定模块的对外接口,
- import 命令用于导入其他模块提供的功能。
二、 安装babel
babel是JavaScript语法的编译器。
1、babeI转换配置项目根目录添加
在项目根目录下创建一个.babelrc文件(手动添加即可)
{
"presets": ["es2015"]
}
2、安装es6转换模块
npm install babel-preset-es2015 --save-dev
3、全局安装命令行工具
#管理员身份运行
npm install babel-cli -g
4、使用
直接运行ES6脚本
babel-node js文件名
三、export和import联合应用
1、命名导出
此方式每一个需要输出的数据类型都要有一个name, 统一输入一定要带有{},即便只有一个需要输出的数据类型。
export导出模块:编写export1.js
//方式一 export let name = "itcast"; export let age = 13; export let gendar = "男"; export let say = function (str) { console.log(str); } //方式二 let name = "itcast"; let age = 13; let gendar = "男"; let say = function (str) { console.log(str); } export {name,age,gendar,say}
import引入模块功能:编写import1.js
import {name,age,gendar,say} from "./export1";
console.log(name);
console.log(age);
console.log(gendar);
say("你好");
注意:当导出变量出现冲突时,可以对导出变量加别名
//可以对导入的变量起别名
import {name as abc,say as hello} from "./export1"; console.log(abc); hello("hello nodejs");
2、默认导出
默认输出不需要name,但是一个js文件中只能有一个export default。
export导出模块:编写export2.js
//方式一 export default function (str) { console.log(str); } //方式二
//一个文件只能有一个export default,不能1个以上同时存在 export default { eat(sth){ console.log("eat"+sth); }, drink(sth){ console.log("drink"+sth); } }
import引入模块功能:编写import2.js
//导入default的模块文件不需要使用{},名字随意起
//方式一 import aaa from "./export2"; aaa("hello aaa"); //方式二 import abc from "./export2"; abc.eat("meat"); abc.drink("water");
方式一结果:
方式二结果: