美文网首页
AMD、CommonJS、UMD

AMD、CommonJS、UMD

作者: 苦苦修行 | 来源:发表于2018-07-29 14:29 被阅读0次

要点总结:

  • AMD:异步模块写法(define中可以用exportsexports其实就是导出的模块对象)
  • CommonJS:同步模块写法(使用exportsmodule.exports来导出模块)
  • UMD:通用模块写法,即 AMD + CommonJS

UMD写法示例:

(function(root, factory) {
    if (typeof define === 'function' && define.amd) {
        // AMD
        define(['jquery'], factory);
    } else if (typeof module === "object" && typeof module.exports === "object") {
        // Node, CommonJS之类的
        module.exports = factory(require('jquery'));
    } else {
        /**
         * 浏览器全局变量(root 即 window)
         * returnExports即绑定到window对象上的变量名
         */
        root.returnExports = factory(root.jQuery);
    }
}(this, function($) {
    // 方法
    function myFunc() {
        // 与 $ 有关的一些逻辑代码
    };

    // 暴露公共方法
    return myFunc;
}));

注意事项:

AMD定义模块时,define方法的第三个参数,即回调方法中也可以使用 requireexportsexports就是你导出的模块对象,所以,你可以将属性或方法挂载到exports

define("alpha", ["require", "exports"], function (require, exports) {
    var app_root_1 = require("./components/app/app-root");
    exports.IonicApp = app_root_1.IonicApp;
});

像上面这个例子,在回调函数中又依赖了其他模块(./components/app/app-root),导出的模块alpha其实就是exports对象,上面挂载了IonicApp属性


参考文献:

延伸阅读:

相关文章

  • gulp-babel

    因amd和commonjs都是require转换时默认commonjs,如需AMD转换,也可以填写UMD

  • JS模块化

    模块化规范:CommonJS,AMD,CMD,UMD,ES6 Module CommonJS CommonJS是服...

  • AMD、CommonJS、UMD

    要点总结: AMD:异步模块写法(define中可以用exports,exports其实就是导出的模块对象) Co...

  • JS的各种模块化规范

    AMD CMD CommonJs UMD ES6 一路演进 AMD 异步模块定义规范(Asynchron...

  • 什么是 AMD,CommonJS 和 UMD?

    (本文译自What Is AMD, CommonJS, and UMD?) 介绍 多年来,可供选择的JavaScr...

  • CommonJS AMD CMD UMD

    CommonJS CommonJS是服务器端模块的规范,Node.js采用了这个规范。 根据CommonJS规范,...

  • CommonJS、AMD、UMD、CMD

    CommonJS(同步的,适用在node.js) CommonJS是nodejs也就是服务器端广泛使用的模块化机制...

  • AMD CommonJS 和 UMD

    在 ESM 之前,前端常用的模块规范有 AMD,CommonJS 以及 UMD,其中 AMD 是浏览器端的 Jav...

  • amd、umd、cmd、commonJS

    看这篇文档:https://zhuanlan.zhihu.com/p/310493689[https://zhua...

  • js 模块化总结

    目前主流的模块化框架有 commonJS / amd / cmd / umd / es module ,动态引用时...

网友评论

      本文标题:AMD、CommonJS、UMD

      本文链接:https://www.haomeiwen.com/subject/tpizmftx.html