module - msforest/notebook GitHub Wiki

es module vs node module

- es module node module
严格模式 总是 默认不是
导出方式 引用(输出对外接口) 复制(module.exports)
书写位置 顶层 任意
加载方式 编译时输出 运行时加载
this undefined module.exports
  • es 输出的是对外接口,而 node 输出的是模块对象
  • es 输出的引用是 const 类型,不能重新指向新的值

import() vs require.ensure

- static import dynamic import require.ensure
语法支持 es6 模块语法 es2017 新增动态导入 webpack 支持的异步加载
promise 不需要 需要 需要
加载方式 同步 异步 异步
环境 es6 es6 nodejs
位置 top level any any
参数 string any any
  • require.ensure 是 webpack 用于异步加载而编写的导入方法,不是 node.js 的方法
  • import()和 require.ensure 都是基于 promise 而实现异步的
  • dynamic import 不是函数,它是一个操作符,类似 typeof()
  • import()和 require.ensure 可以是任何表达式,而 static import 只能是明确的字符串