jsモジュールcommon JS、AMD、CMD

2356 ワード

1.モジュールとは?なぜモジュールを使うのですか?
                   ,        ,         ,     ,         。

                             。

                   ,           ,             。

     javascript     CommonJS  、CMD  AMD  。
2.いつCommon JSを使いますか?いつCMD規格を使いますか?/いつAMD規格を使いますか?
    1>CommonJS:js              ,      。               ,CommonJS   。

    node.js webpack    CommonJS      。   CommonJS        js      :    javascript

      、     、        、      。          。

    CommonJS       :{    (require)}、{    (exports)}、{    (module)}

    2>CMD:      ,CMD       .

        CMDdefine(function(require, exports, module) {   

            var a = require('./a')  

            a.doSomething()  

            //     100     

            var b = require('./b') //           

            b.doSomething()   

              // ...

        })

      3>AMD:      ,               。AMD   require()    ,      require(['module1','module2'],callback);
               ,      ,      ,        .(      )
        1)  requery.js
          defer  IE  ,async  
        2)    js
             min.js  data-main="   ",   .js  。
        min.js
            
                require.config({
                    baseUrl: "js/", //        
                    paths:{
                        'jquery':'http://http://apps.bdimg.com/libs/jquery/2.1.1/jquery.min',
                        'hello':'helloWorld.js'
                    }
                })//      
                require(['jquery','hello'],function($,hello){
                    //  jquery      
                    console.log($('body'))
                    //  helloWorld.js      
                    
                })//         js
            
        helloWrold.js
            
                define('hello',['           js,  jquery'],function(){
                    alert('hello world')
                })//hello     min.js  hello
            
                    
        define(function(){
            var dy = {
                method:function(){
                    alert('123')
                }
            }
            return dy;
        })