一、為什麼前端需要用到dll?
1、提公升編譯速度,在webpack中預設使用commoncheckplugin來進行公共依賴的抽取
但是沒有提公升編譯速度,在大型專案中編譯時間很長。
2、生成的依賴檔案和第三方的依賴關係,檔案快取。
二、使用dll用到哪些外掛程式,都有什麼作用?
1、dllplugin,用於打包出需要動態載入的第三方依賴,一般情況包含package.json中dependencies物件,
配置獨立的打包檔案,輸出檔案有兩個:dll.manifest.json 包含第三庫在專案中的依賴載入關係、dll.libs.js 包含對所有第三方庫的抽離和壓縮
2、dllreferenceplugin,webpack配置檔案中引入 manifest.json 檔案
3、addassethtmlplugin,向打包輸出的index.html 中新增 dll.libs.js
三、生成第三方檔案依賴關係和合幷包檔案
dllplugin生成這個dll庫,需要獨立的webpack命令打包輸出,基本的webpack配置如下:
const path = require('path') //工程路徑
const webpack = require('webpack') //
webpack工具
const uglifyjsplugin = require('uglifyjs-webpack-plugin') //
**壓縮工具,事實證明使用了dllplugin 也有必要壓縮
const env = require('../config/prod.env')
const rootpath = path.resolve(__dirname, "../")
const scriptpath = path.resolve(rootpath, "./scripts")
const pkg = require("./package.json");
let libs = object.keys(pkg.dependencies ||{});
if (exclude && exclude.length > 0) )
}module.exports =,
output: ,
plugins: [
newwebpack.defineplugin(),
newuglifyjsplugin(
},sourcemap: false
,parallel:
true
}),
newwebpack.dllplugin()
]}
輸出的檔案目錄:dll.libs.js 和 dll.manifest.json。
四、在開發環境中引入依賴關係和合併的包
dllreferenceplugin 實際在工程開發環境中,需要引入dll打包好的依賴關係包。引入方式如下:
在工程的webpack主入口的擴充套件外掛程式中,新增以下配置
plugins: [newwebpack.dllreferenceplugin(),
newaddassethtmlplugin()
]
打包 dll 和 引入 json檔案,注意引入的檔案路徑。
前端工程資源小優化
最近給vue專案優化了一下資源打包,有一些心得,記錄下來,供以後開發時參考,相信對其他人也有用。專案使用vue cli搭建的,所以優化方向是基於vue cli3的。查詢原因,發現有如下配置 babel.config.js module.exports main.js import theme ind...
DLL工程除錯方法
最近的專案比較大,歷史版本比較多,由於許可權原因,有些工程 無法獲得,所以自己寫的dll工程如果只用自己的測試程式,難以完成所有case的測試。經過查閱資料,vs2010dll工程的除錯方法如下。1.右擊工程名,properties configuration properties debuggin...
vs除錯dll工程
dll本身是沒法執行的,必須在其它工程呼叫dll時候才會執行。所以,除錯dll首先要將呼叫dll的工程和dll工程聯絡起來。解決方案中新增dll工程 現在dll 和 應用程式兩個工程就都在乙個解決方案裡了 這時要對dll工程作些設定。配置屬性 常規 輸出目錄設定為 應用程式的生成目錄 這樣一來編譯的...