MoonCheung

MoonCheung

人生路漫漫,何曾有坦途。:)

模块化方案

AMD#

使用 RequireJS 编写模块化定义规范产生,主要是用于浏览器端,特点:依赖必须提前声明好

define('./index.js', function(code) {
    // code 就是index.js 返回的内容
});

CMD#

使用 SeaJS 编写模块化定义规范产生,也主要是用于浏览器端,特点:支持引入动态依赖文件

define(function(require, exports, module) {
  var indexCode = require('./index.js');
});

UMD#

UMD:兼容 AMD,CommonJS 模块化语法。

webpack(require.ensure):webpack 2.x 版本中的代码分割。  

CommonJS#

nodejs 中自带的模块化如下:
1.require,ES6 : 支持引入
2.module.exports : 对外批量导出
3.exports: 对外一个一个导出

//nodejs自带模块:require
const fs = require('fs');
//nodejs自带模块:module.exports, exports
const EventEmitter = require('events');
module.exports = new EventEmitter();
// 处理一些工作,并在一段时间后从模块自身触发 'ready' 事件。
setTimeout(() => {
  module.exports.emit('ready');
}, 1000);

ES Modules#

export 和 import 两个命令分别如下:
export 导出你定义的模块变量
import 引入一个模块变量

//ES6 export 导出a.js文件:export { one,two }
export default three
//ES6 import 引入文件:
import  { one, two }  three from 'a.js'

摘取以上 AMD,CMD,UMD 的内容来自原文Github

加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。