标签归档:ES6

import 与 require 的两个差异

Javascript 的模块化开发,除了 RequireJS 代表的 AMD 外,目前广泛使用的是 Node.js 代表的 CommonJS 以及 ES6 的 module。

在 babel / webpack 等工具链下,大多数情况下,CommonJS 的 require 和 ES6 的 import 效果等同,babel 的 preset 是 ES2015 以及 webpack 都是把 import 转为 require(webpack 根据 target 再转为 AMD 或 UMP 等格式)。

但两个规范实质上并不等同,所以存在着不少的区别,如不能 import(var) 但能 require(var),详细可查看 ES6 模块系统,此处记录一下两个可能比较直接影响代码书写的差异点。

继续阅读