關於requirejs和grunt壓縮合并是否矛盾

來源:互聯網
上載者:User

標籤:獨立   主程   塊代碼   www   content   解耦   衝突   知乎   根據   

requirejs主要是為了模組化開發,這樣帶來的好處不言而喻。但是分成多個js檔案增加了請求數,那麼就要用到合并壓縮。合并壓縮了原來的許多獨立的js模組,那requirejs又是怎麼衝壓縮的檔案中找到各個獨立的模組進行載入的呢,感覺兩者有點衝突,這個問題想了很久也假想了很多可能。在知乎上找到了一個回答,好像有那麼點意思。

 

這個問題設計到多個概念詞彙:
1:模組化開發;模組化開發無非是為瞭解耦和代碼重用;期間的優勢你如果不能理解說明你還沒達到那個水平;
2:requirejs;requirejs在模組化開發中作為落地方案之一的技術架構,主要功能是按需載入相依模組;所有的載入器無非是實現幾個功能:(1:解析運行環境,解析主程式入口;(2:解析模組路徑;載入模組代碼並執行回調業務;所有類型模組載入器基本都會執行以上業務(amd,cmd,kmc……);在瀏覽器環境下的模組代碼的載入跟在node環境下的模組代碼載入的解析會有一些差異;
3:代碼合并:在web前端靜態檔案上線之前必做的一個最佳化手段:減輕代碼檔案的體積,減少http請求;
減輕代碼體積的手段就是壓縮代碼(俗稱ugly),在node環境下有很多類似的工具庫可以用;
減少http請求的手段一般就是代碼合并;如將a和b的代碼放到一個js檔案裡面去(css同理)(俗稱combo);
在執行amd標準時,一個js檔案只允許一個模組的存在,故在減少http請求層面,這是相斥的,但amd和cmd標準都有一個具名模組的定義方式,這個時候是允許一個js檔案存在多個模組代碼的;

你所不能理解的應該是r.js(requirejs的打包工具);它的工作其實就是解讀出根據你的配置環境的目錄結構下的代碼存放目錄結構,然後把標準的代碼結構轉換成具名模組的代碼結構,如果你執行了合并,則把依賴的模組的代碼合并到制定的一個檔案中;

 

 

連結 http://www.zhihu.com/question/34007485

 

關於requirejs和grunt壓縮合并是否矛盾

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.