AMD、CMD、CommonJs、ES6的對比
他們都是用于在子產品化定義中使用的,AMD、CMD、CommonJs是ES5中提供的子產品化程式設計的方案,import/export是ES6中定義新增的
什麼是AMD、CMD、CommonJs?
他們之間有什麼差別?
項目當中是如何使用?
1)AMD-異步子產品定義
AMD是RequireJS在推廣過程中對子產品定義的規範化産出,它是一個概念,RequireJS是對這個概念的實作,就好比JavaScript語言是對ECMAScript規範的實作。AMD是一個組織,RequireJS是在這個組織下自定義的一套腳本語言

RequireJS:是一個AMD架構,可以異步加載JS檔案,按照子產品加載方法,通過define()函數定義,第一個參數是一個數組,裡面定義一些需要依賴的包,第二個參數是一個回調函數,通過變量來引用子產品裡面的方法,最後通過return來輸出。
是一個依賴前置、異步定義的AMD架構(在參數裡面引入js檔案),在定義的同時如果需要用到别的子產品,在最前面定義好即在參數數組裡面進行引入,在回調裡面加載
2)CMD---是SeaJS在推廣過程中對子產品定義的規範化産出,是一個同步子產品定義,是SeaJS的一個标準,SeaJS是CMD概念的一個實作,SeaJS是淘寶團隊提供的一個子產品開發的js架構.
通過define()定義,沒有依賴前置,通過require加載jQuery插件,CMD是依賴就近,在什麼地方使用到插件就在什麼地方require該插件,即用即返,這是一個同步的概念
3)CommonJS規範---是通過module.exports定義的,在前端浏覽器裡面并不支援module.exports,通過node.js後端使用的。Nodejs端是使用CommonJS規範的,前端浏覽器一般使用AMD、CMD、ES6等定義子產品化開發的
輸出方式有2種:預設輸出---module export 和帶有名字的輸出---exports.area
4)ES6特性,子產品化---export/import對子產品進行導出導入的