JS modularity (three): CMD specification

Directory Structure

module1: (No dependent modules)

// 这是没有依赖的模块
define(function(require,exports,module) {
    
    
    let msg = 'module1';
    function foo() {
    
    
        return msg;
    }
    // 暴露模块
    module.exports = {
    
    foo};
})

module2: (No dependent modules)

define(function(require,exports,module){
    
    
    let msg = 'module2';
    function bar() {
    
    
        console.log(msg);
    }
    module.exports = bar;
})

module3: (No dependent modules)

define(function(require,exports,module) {
    
    
    let data = 'module3';
    function fun() {
    
    
        console.log(data);
    }
    // exports.module3 = {fun};
    module.exports = {
    
    fun};
})

module4: (a dependent module)

// 这是一个有依赖的模块
define(function(require,exports,module) {
    
    
    let msg = 'module4';
    // 同步引入
    let module2 = require('./module2');
    module2();
    // 异步引入
    require.async('./module3',function(module3) {
    
    
        // module3.module3.fun();
        module3.fun();
    })
    function fun2() {
    
    
        console.log(msg);
    }
    exports.fun2 = fun2;
})

Main function: main.js

define(function(require) {
    
    
    let module1 = require('./module1');
    console.log(module1.foo()); 
    let module4 = require('./module4');
    module4.fun2();
})

Browser side use

Guess you like

Origin blog.csdn.net/sinat_41696687/article/details/114999038