問題:
相容性問題:瀏覽器目前僅支援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核心 擴充...