1. 文件不隨編譯變化
文件hash不使用[hash],而使用[chunkhash],使得文件只隨着內容變化,不隨着編譯變化,[hash]是每次編譯都變化一次
2. css文件不受js模塊變化影響
css文件hash使用contenthash,這樣不受js模塊變化影響
3. 提取vendor
公共庫不受業務模塊變化影響
4. 內聯webpack runtime到頁面
chunkId變化不影響vendor,不占用http請求,使用chunk-manifest-webpack-plugin提取,gulp-inject插入到頁面
5. 保證module Id穩定
模塊的新增或刪除,會導致其后面的所有模塊id重新排序,為避免這個問題,不使用數字作為模塊id,改用文件內容的hash值,使用HashedModuleIdsPlugin可以解決
6. 保證chunkhash穩定
使用webpack-chunk-hash,替代webpack自己的hash算法。webpack自己的hash算法,對於同一個文件,在不同開發環境下,會計算出不用的hash值,不能滿足跨平台需求。
