commonjs、AMD、CMD

webpack運行在node.js上,所以模塊化規範也同node.js 使用的是commonjs規範

commonjs規範內容

一個文件就是一個模塊,模塊間作用域互不影響

  • 模塊的定義 module.exports
  • 模塊的引用 require(‘標識符’)
  • 模塊標識符

服務端

commonjs規範爲同步加載,適用於服務端,在瀏覽器中js加載會阻塞頁面渲染,因此同步不適用

瀏覽器端

產生了amd(require.js)和cmd(sea.js)規範。

  • amd 異步模塊定義
  • cmd 通用模塊定義
    兩者都是進行異步加載。
    amd依賴前置,依賴加載完後立即執行,執行順序不定,體驗好(提前執行完成);
    cmd依賴後置,依賴加載完不執行,require時按順序執行,性能好(不需要的不執行)

webpack打包

webpack打包後的文件,將依賴都打包到同一文件中,通過id作爲模塊的標識。當文件很大時,webpack借鑑amd對代碼進行拆分code splitting,需要用到時再加載進來。

es6中import

import使用bable轉換後會變爲commonjs的require,這時如果直接放到瀏覽器中是無法運行的,還需要打包 如上webpack打包(預編譯)或使用browserify

  • webpack 可以處理一些其它靜態資源等
  • browserify 處理js包依賴
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章