Javascript模块化规范
CommonJS规范
CommonJS规范应用在服务器
声明:
1 | module.exports = { |
引入:
1 | var moduleA = require('moduleA.js'); |
AMD规范
AMD规范应用在客户端
声明:
1 | define(function(){ |
引入:(异步执行)
1 | require('moduleA.js',function(moduleA){ |
ECMA6模块化规范
1 | import package from 'module-name' |
1 | export default str => str.toUpperCase() |
在此示例中,模块定义了单个默认导出(default export),因此它可以是匿名函数。 否则,它需要一个名称来区分其它的导出。
在引入入口文件时需要指定类型,而且不允许跨域
原生解析必须加.js后缀否则会404报错
原生import必须在服务器环境下运行
import命令会被 JavaScript 引擎静态分析,先于模块内的其他语句执行,也就是说,import和export命令只能在模块的顶层,不能在代码块之中
如果import命令要取代 Node 的require方法,这就形成了一个障碍。因为require是运行时加载模块,import命令无法取代require的动态加载功能。
import()函数
import()返回一个 Promise 对象。下面是一个例子
1 | const main = document.querySelector('main'); |
署名-非商业性使用本文采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 ZEKALRYN'S BLOG!
评论
