Dll 前端 工程優化

2022-03-13 09:47:46 字數 1793 閱讀 5745

一、為什麼前端需要用到dll?

1、提公升編譯速度,在webpack中預設使用commoncheckplugin來進行公共依賴的抽取

但是沒有提公升編譯速度,在大型專案中編譯時間很長。

2、生成的依賴檔案和第三方的依賴關係,檔案快取。

二、使用dll用到哪些外掛程式,都有什麼作用?

1、dllplugin,用於打包出需要動態載入的第三方依賴,一般情況包含package.jsondependencies物件,

配置獨立的打包檔案,輸出檔案有兩個: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

}),

new

webpack.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工程作些設定。配置屬性 常規 輸出目錄設定為 應用程式的生成目錄 這樣一來編譯的...