欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

webpack-bundle-analyzer?插件配置使用方法

 更新時間:2023年02月07日 09:32:58   作者:夢的點滴  
webpack-bundle-analyzer?是?webpack?的插件,需要配合?webpack?和?webpack-cli?一起使用,這篇文章主要介紹了webpack-bundle-analyzer?插件配置,需要的朋友可以參考下

一、webpack-bundle-analyzer 是什么?

webpack-bundle-analyzer 是 webpack 的插件,需要配合 webpack 和 webpack-cli 一起使用。這個插件可以讀取輸出文件夾(通常是 dist)中的 stats.json 文件,把該文件可視化展現(xiàn),生成代碼分析報告,可以直觀地分析打包出的文件有哪些,及它們的大小、占比情況、各文件 Gzipped 后的大小、模塊包含關(guān)系、依賴項等,對應(yīng)做出優(yōu)化,從而幫助提升代碼質(zhì)量和網(wǎng)站性能。

二、安裝

# NPM 
npm install --save-dev webpack-bundle-analyzer
# Yarn 
yarn add -D webpack-bundle-analyzer

三、使用方法

1. 作為插件使用

1. 配置 webpack.config.js 文件:

// webpack.config.js 文件
 
const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin
module.exports={
  plugins: [
    new BundleAnalyzerPlugin()  // 使用默認配置
    // 默認配置的具體配置項
    // new BundleAnalyzerPlugin({
    //   analyzerMode: 'server',
    //   analyzerHost: '127.0.0.1',
    //   analyzerPort: '8888',
    //   reportFilename: 'report.html',
    //   defaultSizes: 'parsed',
    //   openAnalyzer: true,
    //   generateStatsFile: false,
    //   statsFilename: 'stats.json',
    //   statsOptions: null,
    //   excludeAssets: null,
    //   logLevel: info
    // })
  ]
}

2. 配置 package.json 文件

{
 "scripts": {
    "dev": "webpack --config webpack.dev.js --progress"
  }
}

3. 在命令行工具中輸入

npm run dev

按回車。此時會打開瀏覽器,你將看到項目資源包的交互式可視化樹形分析圖。

圖中占面積越大的文件,其文件的大小越大,部署到服務(wù)器之后,在瀏覽器中加載的時間越長,點擊左上角的像箭頭一樣的符號可以直接查看各個文件的大小。

該分析圖可以幫助我們:

  • 了解 bundle 包中的真正內(nèi)容
  • 找出哪些模塊尺寸最大
  • 查找誤引入的模塊
  • 優(yōu)化項目

最棒的是它支持縮小的 bundle 文件,它解析它們以獲得 bundle 文件模塊的實際大小,還顯示了它們的壓縮大小。

得到可視化的分析結(jié)果之后,接下來就對占比比較大或者依賴程度比較高的文件進行優(yōu)化了。

4. 參數(shù)配置

new BundleAnalyzerPlugin(options?: object)

名稱類型描述
analyzerModeserver / static / json / disabled默認值:server。 在server 模式下,分析器將啟動 HTTP 服務(wù)器以顯示 bundle 報告。 在 static 模式下,將生成帶有 bundle 報告的單個 HTML 文件。 在 json 模式下,將生成帶有捆綁報告的單個 JSON 文件。 在 disable 模式下,您可以使用此插件通過將 generateStatsFile 設(shè)置為 true 來生成 Webpack Stats JSON 文件。
analyzerHost{ String }默認值:127.0.0.1。 在 server 模式下用于啟動 HTTP 服務(wù)器的主機。
analyzerPort{ Number }或者 auto默認值:8888。在 server 模式下用于啟動 HTTP 服務(wù)器的端口
reportFilename{String}默認值:report.html。 在 static 模式下生成的捆綁報告文件的路徑。 它可以是絕對路徑,也可以是相對于 bundle 文件輸出目錄的路徑(在 webpack 配置中是 output.path)。
reportTitle{ String | function }默認值:返回打印當前日期和時間的函數(shù)。 HTML 的 title 元素的內(nèi)容; 或獲取該內(nèi)容的 () => string 形式的函數(shù)。
defaultSizesstat / parsed / gzip

默認值:parsed。 默認情況下在報告中顯示的模塊大小。

stat:這是文件的“輸入”大小,在進行任何轉(zhuǎn)換(如縮小)之前。之所以稱為“stat size”,是因為它是從 Webpack 的 stats 對象中獲取的。

parsed:這是文件的“輸出”大小。 如果你使用的是 Uglify 之類的 Webpack 插件,那么這個值將反映代碼的縮小后的大小。

gzip:這是通過 gzip 壓縮運行解析的包/模塊的大小。

openAnalyzer{ Boolean }默認值:true。 在默認瀏覽器中自動打開報告。
genarateStatsFile{ Boolean }默認值:false。 如果為 true,將在 bundle 輸出目錄中生成 webpack stats JSON 文件
statsFilename{ String }默認值:stats.json。 如果 generateStatsFile 為 true,表示將生成的 webpack stats JSON 文件的名稱。 它可以是絕對路徑,也可以是相對于bundle文件輸出目錄的路徑(在 webpack 配置中是 output.path)。
statsOptionsnull 或 { Object }默認值:null。 stats.toJson() 方法的選項。 例如,您可以使用 source: false 選項從統(tǒng)計文件中排除模塊的源代碼。
excludeAssets

{ null | pattern | pattern[] }

其中 pattern 可以是

{ String | RegExp | function }

默認值:null。 用于匹配將從報告中排除的資源名稱的模式。 如果 pattern 是一個字符串,它將通過 new RegExp(str) 轉(zhuǎn)換為 RegExp。 如果 pattern 是一個函數(shù),它應(yīng)該具有以下簽名 (assetName: string) => boolean 并且應(yīng)該返回 true 以排除匹配的資源。 如果提供了多個模式,資源應(yīng)至少匹配其中一個以被排除。
logLevelinfo / warn / error / silent默認值:info。 用于控制插件輸出多少細節(jié)。

優(yōu)點:簡單
缺點:每次運行打包命令時,都在本地起一個端口號為8888的本地服務(wù)器,并自動在瀏覽器中展示項目的分析結(jié)果。不夠靈活,并不是每次構(gòu)建都想看代碼分析!

2. 作為CLI的一個工具

如果你有一個 webpack stats JSON 文件,你可以分析一個現(xiàn)有的包。

1、配置 webpack.config.js 文件:

可以使用 BundleAnalyzerPlugin 將 generateStatsFile 選項設(shè)置為 true

// webpack.config.js 文件
 
const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin
module.exports={
  plugins: [
    new BundleAnalyzerPlugin({
      analyzerMode: 'disabled', // 不啟動展示打包報告的http服務(wù)器
      generateStatsFile: true, // 是否生成stats.json文件
    }),
  ]
}

2、配置 package.json 文件

{
 "scripts": {
    "generateAnalyzFile": "webpack --profile --json > stats.json", // 生成分析文件
    "analyz": "webpack-bundle-analyzer --port 8888 ./dist/stats.json" // 啟動展示打包報告的http服務(wù)器
  }
}

 3、在命令行工具中,先運行 npm run generateAnalyzFile 命令,然后運行 npm run analyz 命令。此時就可以看到分析結(jié)果了。

優(yōu)點:稍微復(fù)雜,但是靈活
缺點:每次運行命令時,都會在 dist 目錄下生成一個 stats.json 文件。這個問題,可以將 generateStatsFile 屬性設(shè)置為 false,但是這樣就無法生成 stats.json 文件了。解決辦法:需要查看分析報告的時候設(shè)置為 true,其余時候設(shè)置為 false。

參考文章:

webpack-bundle-analyzer - npm (npmjs.com)

webpack-bundle-analyzer插件快速入門 - 簡書 (jianshu.com)

到此這篇關(guān)于webpack-bundle-analyzer 插件配置的文章就介紹到這了,更多相關(guān)webpack-bundle-analyzer 插件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論