依賴(lài)Webpack bundle analyzer對(duì)Angular打包構(gòu)建的包進(jìn)行分析

1、安裝依賴(lài)? npm install webpack-bundle-analyzer@^3.0.3

2、對(duì)package.json文件進(jìn)行配置

scripts下添加一條指令:"bundle-report": "webpack-bundle-analyzer dist/stats.json"

3、對(duì)angular.json文件進(jìn)行配置?

????????????"outputPath": "dist",

architect配置如下

"architect": {

? "build": {

? ? "builder": "@angular-devkit/build-angular:browser",

? ? "options": {

? ? ? "outputPath": "dist",

? ? ? "index": "src/index.html",

? ? ? "main": "src/main.ts",

? ? ? "tsConfig": "src/tsconfig.app.json",

? ? ? "polyfills": "src/polyfills.ts",

? ? ? "assets": [

? ? ? ? "src/assets",

? ? ? ? "src/favicon.ico",

? ? ? ? {

? ? ? ? ? "glob": "**/*",

? ? ? ? ? "input": "./node_modules/@ant-design/icons-angular/src/inline-svg/",

? ? ? ? ? "output": "/assets/"

}

? ? ? ],

? ? ? "styles": [

? ? ? ? "node_modules/bootstrap/dist/css/bootstrap.css",

? ? ? ? "node_modules/font-awesome/css/font-awesome.css",

? ? ? ? "node_modules/ngx-bootstrap/datepicker/bs-datepicker.css",

? ? ? ? "node_modules/ng-zorro-antd/src/ng-zorro-antd.less",

? ? ? ? "src/styles.scss",

? ? ? ? "src/animate.css"

? ? ? ],

? ? ? "scripts": [

? ? ? ? "node_modules/jquery/dist/jquery.js",

? ? ? ? "node_modules/echarts/dist/echarts.min.js",

? ? ? ? "src/assets/js/fingerprint.js",

? ? ? ? "node_modules/echarts/lib/chart/map/china.js"

? ? ? ]

? ? },

? ? "configurations": {

? ? ? "test": {

? ? ? ? "optimization": false,

? ? ? ? "outputHashing": "all",

? ? ? ? "sourceMap": false,

? ? ? ? "extractCss": true,

? ? ? ? "namedChunks": false,

? ? ? ? "aot": true,

? ? ? ? "extractLicenses": true,

? ? ? ? "vendorChunk": false,

? ? ? ? "buildOptimizer": false,

? ? ? ? "fileReplacements": [

? ? ? ? ? {

? ? ? ? ? ? "replace": "src/environments/environment.ts",

? ? ? ? ? ? "with": "src/environments/environment.test.ts"

? ? ? ? ? }

? ? ? ? ]

? ? ? },

? ? ? "production": {

? ? ? ? "optimization": true,? //? optimization buildOptimizer 兩個(gè)參數(shù)改為false不壓縮,打包后提交大一倍,但是構(gòu)建時(shí)間減少一倍,上生產(chǎn)改成true,測(cè)試為false

? ? ? ? "outputHashing": "all",

? ? ? ? "sourceMap": false,

? ? ? ? "extractCss": true,

? ? ? ? "namedChunks": false,

? ? ? ? "aot": true,

? ? ? ? "extractLicenses": true,

? ? ? ? "vendorChunk": false,

? ? ? ? "buildOptimizer": true,

? ? ? ? "fileReplacements": [

? ? ? ? ? {

? ? ? ? ? ? "replace": "src/environments/environment.ts",

? ? ? ? ? ? "with": "src/environments/environment.prod.ts"

? ? ? ? ? }

? ? ? ? ]

? ? ? }

? ? }

? },

? "serve": {

? ? "builder": "@angular-devkit/build-angular:dev-server",

? ? "options": {

? ? ? "browserTarget": "micro-service:build",

? ? ? "proxyConfig": "proxy.config.json"

? ? },

? ? "configurations": {

? ? ? "test": {

? ? ? ? "browserTarget": "micro-service:build:test"

? ? ? },

? ? ? "production": {

? ? ? ? "browserTarget": "micro-service:build:production"

}

? ? }

? },

? "extract-i18n": {

? ? "builder": "@angular-devkit/build-angular:extract-i18n",

? ? "options": {

? ? ? "browserTarget": "micro-service:build"

? ? }

? },

? "test": {

? ? "builder": "@angular-devkit/build-angular:karma",

? ? "options": {

? ? ? "main": "src/test.ts",

? ? ? "karmaConfig": "./karma.conf.js",

? ? ? "polyfills": "src/polyfills.ts",

? ? ? "tsConfig": "src/tsconfig.spec.json",

? ? ? "scripts": [

? ? ? ? "node_modules/jquery/dist/jquery.js",

? ? ? ? "node_modules/popper.js/dist/umd/popper.js",

? ? ? ? "node_modules/echarts/dist/echarts.min.js",

? ? ? ? "src/assets/js/fingerprint.js",

? ? ? ? "node_modules/echarts/lib/chart/map/china.js"

? ? ? ],

? ? ? "styles": [

? ? ? ? "node_modules/bootstrap/dist/css/bootstrap.css",

? ? ? ? "node_modules/font-awesome/css/font-awesome.css",

? ? ? ? "node_modules/ngx-bootstrap/datepicker/bs-datepicker.css",

? ? ? ? "node_modules/ng-zorro-antd/src/ng-zorro-antd.less",

? ? ? ? "src/styles.scss",

? ? ? ? "src/animate.css"

? ? ? ]

}

? },

? "lint": {

? ? "builder": "@angular-devkit/build-angular:tslint",

? ? "options": {

? ? ? "tsConfig": [

? ? ? ? "src/tsconfig.app.json",

? ? ? ? "src/tsconfig.spec.json"

? ? ? ],

? ? ? "exclude": [

? ? ? ? "**/node_modules/**"

? ? ? ]

}

? }

}


4、執(zhí)行ng build --prod --stats-json

5、最后執(zhí)行npm run bundle-report 會(huì)單獨(dú)打開(kāi)一個(gè)頁(yè)面展示如下,可以一目了然的看到各個(gè)模塊大小和nginx壓縮后的大小


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容