Modules

因为目前 modules 还没有普遍实现,Node.js 使用的是 CommonJS modules,

CommonJS Modules

对于 modules,top-level scope 不是 global scope。

modules 文件将包裹在一个函数(module wrapper)内,因此 modules top-level scope 不是 global scope。

ECMAScript Modules

目前处于试验阶段。

模块扩展名为 .mjs

// foo.mjs
export default { name: 'foo' }

// app.mjs
import foo from './foo.mjs' // 不能省略扩展名,不然找不到这个模块
console.log(foo.name)
node --experimental-modules app.mjs