/*
AMD 异步模块定义
RequireJS推广过程中对模块化定义的规范化的产出,是一个概念
特点:define()定义,依赖前置,异步定义,return输出
*/
define(['package/lib'], function(lib){
function getInfo() {
lib.log(1111)
},
return: { //输出模块
getInfo: getInfo
}
})
/*
CMD 同步模块定义
SeaJS推广过程中对模块化定义的规范化产出,是SeaJS的标准
特点:define()定义,没有依赖前置,采用依赖就近,即用即返
*/
define(function(require, exports, module){
//通过require引入依赖
var $vue = require('vue')
})
/*
CommonJS 后端模块化规范
NodeJS使用CommonJS规范,前端浏览器一般使用AMD/CMD/ES6
特点: module.exports定义
*/
module.exports = {
dev: {}
}
exports.fn = function(val){
}
/*
ES6模块化
import引入,export导出
*/
import fn1 from './fn1' //默认导出的引入方式
import { fn2 } from './fn2' //非默认导出引入方式
export default fn1 = function() {
console.log('fn1')
}
export fn2 = function fn2() {
// body...
}