老师 es6编译时加载 该怎么理解
来源:2-5 文件自动监听,项目构建测试

晕呼呼的小卡
2018-04-23
在看到 moudle 语法的时候有下面这一段话:
ES6 模块的设计思想是尽量的静态化,使得编译时就能确定模块的依赖关系,以及输入和输出的变量。然后给出了代码示例如下:
// CommonJS模块
let { stat, exists, readFile } = require('fs');
// 等同于
let _fs = require('fs');
let stat = _fs.stat;
let exists = _fs.exists
;let readfile = _fs.readfile;
上面代码的实质是整体加载fs模块(即加载fs的所有方法),生成一个对象(_fs),然后再从这个对象上面读取 3 个方法。这种加载称为“运行时加载”,因为只有运行时才能得到这个对象,导致完全没办法在编译时做“静态优化”。
这段描述中提到的“ES6 模块的设计思想是尽量的静态化”不是很能理解,想请老师解惑。
写回答
1回答
-
快乐动起来呀
2018-04-23
关于模块化的动态加载是和commonjs来对比的,可以看下http://es6.ruanyifeng.com/#docs/module-loader,一句话总结commonjs的模块化是复制,export是符号连接(只读)
00
相似问题