webpack 瀏覽器端實現模組化

2021-10-23 14:57:53 字數 970 閱讀 2192

問題:

相容性問題:瀏覽器目前僅支援es6的模組化標準,並且還存在相容性問題

這些僅僅是前端工程化的乙個縮影

當開發乙個具有規模的程式,你將遇到非常多的非業務問題,這些問題包括:執行效率、相容性、**的可維護性可擴充套件性、團隊協作、測試等等等等,我們將這些問題稱之為工程問題。工程問題與業務無關,但它深刻的影響到開發進度,如果沒有乙個好的工具解決這些問題,將使得開發進度變得極其緩慢,同時也讓開發者陷入技術的泥潭。

思考:上面提到的問題,為什麼在node端沒有那麼明顯,反而到了瀏覽器端變得如此嚴重呢?

答:在node端,執行的js檔案在本地,因此可以本地讀取檔案,它的效率比瀏覽器遠端傳輸檔案高的多

根本原因:在瀏覽器端,開發時態(devtime)和執行時態(runtime)的側重點不一樣

開發時態,devtime:

模組劃分越細越好

支援多種模組化標準

能夠解決其他工程化的問題

執行時態,runtime:

檔案越少越好

檔案體積越小越好

**內容越亂越好

所有瀏覽器都要相容

能夠解決其他執行時的問題,主要是執行效率問題

這種差異在小專案中表現的並不明顯,可是一旦專案形成規模,就越來越明顯,如果不解決這些問題,前端專案形成規模只能是空談

既然開發時態和執行時態面臨的局面有巨大的差異,因此,我們需要有乙個工具,這個工具能夠讓開發者專心的在開發時態寫**,然後利用這個工具將開發時態編寫的**轉換為執行時態需要的東西。

這樣的工具,叫做構建工具

這樣一來,開發者就可以專注於開發時態的**結構,而不用擔心執行時態遇到的問題了。

webpack 與 瀏覽器快取

我們先在專案中加入 jquery 與 lodash 庫。然後在index.js 中引入並使用,如下。import from lodash import from jquery const dom dom.html join hello world 然後打包。這裡我們先把sourcemap 檔案去掉,...

瀏覽器端模組載入器AMD和CMD

1.amd 非同步模組定義 amd 瀏覽器端模組化開發的規範。使用amd規範快發需要用到對應的庫函式requirejs,也即amd是requirejs在推廣過程中對模組定義的規範化的產出。requirejs主要解決兩個問題 requirejs作用 requirejs使用 引用載入自己寫的js檔案 j...

瀏覽器核心 移動端瀏覽器核心

主流瀏覽器核心 1 ie瀏覽器 trident核心 2 firefox瀏覽器 gecko核心 3 safari瀏覽器 webkit核心 4 chrome瀏覽器 blink核心 blink是webkit的乙個分支 5 opera瀏覽器 最初是presto,後來是webkit,現在是blink核心 擴充...