Skip to content

Commit

Permalink
chore: Adds bundle analyzer to monitor size of dependencies
Browse files Browse the repository at this point in the history
* Provides a treemap served via its own webserver to display the relative
  sizes of the constituent components of the app

* package.json
 * Adds two commands that execute different analyses of the components. Both
   execute using the dev webpack-config but the second uses the 'production'
   mode to demonstrate what the chunk size looks like in the final build

* webpack.config.dev.js
 * Adds the bundle analyzer plugin and keeps the prod version clean of
   developer monitoring plugins
  • Loading branch information
phantomjinx committed Jan 23, 2024
1 parent 701e5f9 commit adf5981
Show file tree
Hide file tree
Showing 3 changed files with 141 additions and 3 deletions.
5 changes: 4 additions & 1 deletion packages/online-shell/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,9 @@
"build:webpack": "webpack --mode production --progress --config webpack.config.prod.js --output-public-path='/online/'",
"replace-version": "replace __PACKAGE_VERSION_PLACEHOLDER__ $npm_package_version ./build -r",
"test": "jest --watchAll=false --passWithNoTests src/**/*.test.ts*",
"test:coverage": "yarn test --coverage"
"test:coverage": "yarn test --coverage",
"analyze:webpack:dev": "webpack --mode development --progress --config webpack.config.dev.js --output-public-path='/online/'",
"analyze:webpack:prod": "webpack --mode production --progress --config webpack.config.dev.js --output-public-path='/online/'"
},
"dependencies": {
"@fortawesome/fontawesome-svg-core": "^6.5.1",
Expand Down Expand Up @@ -73,6 +75,7 @@
"tsconfig-paths-webpack-plugin": "^4.1.0",
"url": "^0.11.3",
"webpack": "^5.88.1",
"webpack-bundle-analyzer": "^4.10.1",
"webpack-cli": "^5.1.4",
"webpack-dev-server": "^4.15.1",
"webpack-merge": "^5.9.0"
Expand Down
2 changes: 2 additions & 0 deletions packages/online-shell/webpack.config.dev.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ const { merge } = require('webpack-merge')
const WebpackDevServer = require('webpack-dev-server')
const DotenvPlugin = require('dotenv-webpack')
const historyApiFallback = require('connect-history-api-fallback')
const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin
const path = require('path')
const url = require('url')
const dotenv = require('dotenv')
Expand Down Expand Up @@ -53,6 +54,7 @@ module.exports = () => {
systemvars: true,
ignoreStub: true,
}),
new BundleAnalyzerPlugin(),
],

devServer: {
Expand Down
137 changes: 135 additions & 2 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -1680,7 +1680,7 @@ __metadata:
languageName: node
linkType: hard

"@discoveryjs/json-ext@npm:^0.5.0":
"@discoveryjs/json-ext@npm:0.5.7, @discoveryjs/json-ext@npm:^0.5.0":
version: 0.5.7
resolution: "@discoveryjs/json-ext@npm:0.5.7"
checksum: 2176d301cc258ea5c2324402997cf8134ebb212469c0d397591636cea8d3c02f2b3cf9fd58dcb748c7a0dade77ebdc1b10284fa63e608c033a1db52fddc69918
Expand Down Expand Up @@ -2222,6 +2222,7 @@ __metadata:
url: ^0.11.3
web-vitals: ^3.5.1
webpack: ^5.88.1
webpack-bundle-analyzer: ^4.10.1
webpack-cli: ^5.1.4
webpack-dev-server: ^4.15.1
webpack-merge: ^5.9.0
Expand Down Expand Up @@ -2861,6 +2862,13 @@ __metadata:
languageName: node
linkType: hard

"@polka/url@npm:^1.0.0-next.24":
version: 1.0.0-next.24
resolution: "@polka/url@npm:1.0.0-next.24"
checksum: 00baec4458ac86ca27edf7ce807ccfad97cd1d4b67bdedaf3401a9e755757588f3331e891290d1deea52d88df2bf2387caf8d94a6835b614d5b37b638a688273
languageName: node
linkType: hard

"@reactflow/background@npm:11.3.6":
version: 11.3.6
resolution: "@reactflow/background@npm:11.3.6"
Expand Down Expand Up @@ -4441,13 +4449,29 @@ __metadata:
languageName: node
linkType: hard

"acorn-walk@npm:^8.0.0":
version: 8.3.2
resolution: "acorn-walk@npm:8.3.2"
checksum: 3626b9d26a37b1b427796feaa5261faf712307a8920392c8dce9a5739fb31077667f4ad2ec71c7ac6aaf9f61f04a9d3d67ff56f459587206fc04aa31c27ef392
languageName: node
linkType: hard

"acorn-walk@npm:^8.0.2, acorn-walk@npm:^8.1.1":
version: 8.2.0
resolution: "acorn-walk@npm:8.2.0"
checksum: 1715e76c01dd7b2d4ca472f9c58968516a4899378a63ad5b6c2d668bba8da21a71976c14ec5f5b75f887b6317c4ae0b897ab141c831d741dc76024d8745f1ad1
languageName: node
linkType: hard

"acorn@npm:^8.0.4":
version: 8.11.3
resolution: "acorn@npm:8.11.3"
bin:
acorn: bin/acorn
checksum: 76d8e7d559512566b43ab4aadc374f11f563f0a9e21626dd59cb2888444e9445923ae9f3699972767f18af61df89cd89f5eaaf772d1327b055b45cb829b4a88c
languageName: node
linkType: hard

"acorn@npm:^8.1.0, acorn@npm:^8.4.1, acorn@npm:^8.8.1, acorn@npm:^8.8.2, acorn@npm:^8.9.0":
version: 8.10.0
resolution: "acorn@npm:8.10.0"
Expand Down Expand Up @@ -5619,6 +5643,13 @@ __metadata:
languageName: node
linkType: hard

"commander@npm:^7.2.0":
version: 7.2.0
resolution: "commander@npm:7.2.0"
checksum: 53501cbeee61d5157546c0bef0fedb6cdfc763a882136284bed9a07225f09a14b82d2a84e7637edfd1a679fb35ed9502fd58ef1d091e6287f60d790147f68ddc
languageName: node
linkType: hard

"commander@npm:^8.3.0":
version: 8.3.0
resolution: "commander@npm:8.3.0"
Expand Down Expand Up @@ -6184,6 +6215,13 @@ __metadata:
languageName: node
linkType: hard

"debounce@npm:^1.2.1":
version: 1.2.1
resolution: "debounce@npm:1.2.1"
checksum: 682a89506d9e54fb109526f4da255c5546102fbb8e3ae75eef3b04effaf5d4853756aee97475cd4650641869794e44f410eeb20ace2b18ea592287ab2038519e
languageName: node
linkType: hard

"debug@npm:2.6.9":
version: 2.6.9
resolution: "debug@npm:2.6.9"
Expand Down Expand Up @@ -6602,6 +6640,13 @@ __metadata:
languageName: node
linkType: hard

"duplexer@npm:^0.1.2":
version: 0.1.2
resolution: "duplexer@npm:0.1.2"
checksum: 62ba61a830c56801db28ff6305c7d289b6dc9f859054e8c982abd8ee0b0a14d2e9a8e7d086ffee12e868d43e2bbe8a964be55ddbd8c8957714c87373c7a4f9b0
languageName: node
linkType: hard

"eastasianwidth@npm:^0.2.0":
version: 0.2.0
resolution: "eastasianwidth@npm:0.2.0"
Expand Down Expand Up @@ -8129,6 +8174,15 @@ __metadata:
languageName: node
linkType: hard

"gzip-size@npm:^6.0.0":
version: 6.0.0
resolution: "gzip-size@npm:6.0.0"
dependencies:
duplexer: ^0.1.2
checksum: 2df97f359696ad154fc171dcb55bc883fe6e833bca7a65e457b9358f3cb6312405ed70a8da24a77c1baac0639906cd52358dc0ce2ec1a937eaa631b934c94194
languageName: node
linkType: hard

"handle-thing@npm:^2.0.0":
version: 2.0.1
resolution: "handle-thing@npm:2.0.1"
Expand Down Expand Up @@ -8291,7 +8345,7 @@ __metadata:
languageName: node
linkType: hard

"html-escaper@npm:^2.0.0":
"html-escaper@npm:^2.0.0, html-escaper@npm:^2.0.2":
version: 2.0.2
resolution: "html-escaper@npm:2.0.2"
checksum: d2df2da3ad40ca9ee3a39c5cc6475ef67c8f83c234475f24d8e9ce0dc80a2c82df8e1d6fa78ddd1e9022a586ea1bd247a615e80a5cd9273d90111ddda7d9e974
Expand Down Expand Up @@ -8890,6 +8944,13 @@ __metadata:
languageName: node
linkType: hard

"is-plain-object@npm:^5.0.0":
version: 5.0.0
resolution: "is-plain-object@npm:5.0.0"
checksum: e32d27061eef62c0847d303125440a38660517e586f2f3db7c9d179ae5b6674ab0f469d519b2e25c147a1a3bc87156d0d5f4d8821e0ce4a9ee7fe1fcf11ce45c
languageName: node
linkType: hard

"is-potential-custom-element-name@npm:^1.0.1":
version: 1.0.1
resolution: "is-potential-custom-element-name@npm:1.0.1"
Expand Down Expand Up @@ -11110,6 +11171,13 @@ __metadata:
languageName: node
linkType: hard

"mrmime@npm:^2.0.0":
version: 2.0.0
resolution: "mrmime@npm:2.0.0"
checksum: f6fe11ec667c3d96f1ce5fd41184ed491d5f0a5f4045e82446a471ccda5f84c7f7610dff61d378b73d964f73a320bd7f89788f9e6b9403e32cc4be28ba99f569
languageName: node
linkType: hard

"ms@npm:2.0.0":
version: 2.0.0
resolution: "ms@npm:2.0.0"
Expand Down Expand Up @@ -11469,6 +11537,15 @@ __metadata:
languageName: node
linkType: hard

"opener@npm:^1.5.2":
version: 1.5.2
resolution: "opener@npm:1.5.2"
bin:
opener: bin/opener-bin.js
checksum: 33b620c0d53d5b883f2abc6687dd1c5fd394d270dbe33a6356f2d71e0a2ec85b100d5bac94694198ccf5c30d592da863b2292c5539009c715a9c80c697b4f6cc
languageName: node
linkType: hard

"openshift-logos-icon@npm:^1.7.1":
version: 1.7.1
resolution: "openshift-logos-icon@npm:1.7.1"
Expand Down Expand Up @@ -13058,6 +13135,17 @@ __metadata:
languageName: node
linkType: hard

"sirv@npm:^2.0.3":
version: 2.0.4
resolution: "sirv@npm:2.0.4"
dependencies:
"@polka/url": ^1.0.0-next.24
mrmime: ^2.0.0
totalist: ^3.0.0
checksum: 6853384a51d6ee9377dd657e2b257e0e98b29abbfbfa6333e105197f0f100c8c56a4520b47028b04ab1833cf2312526206f38fcd4f891c6df453f40da1a15a57
languageName: node
linkType: hard

"sisteransi@npm:^1.0.5":
version: 1.0.5
resolution: "sisteransi@npm:1.0.5"
Expand Down Expand Up @@ -13717,6 +13805,13 @@ __metadata:
languageName: node
linkType: hard

"totalist@npm:^3.0.0":
version: 3.0.1
resolution: "totalist@npm:3.0.1"
checksum: 5132d562cf88ff93fd710770a92f31dbe67cc19b5c6ccae2efc0da327f0954d211bbfd9456389655d726c624f284b4a23112f56d1da931ca7cfabbe1f45e778a
languageName: node
linkType: hard

"tough-cookie@npm:^4.1.2":
version: 4.1.3
resolution: "tough-cookie@npm:4.1.3"
Expand Down Expand Up @@ -14952,6 +15047,29 @@ __metadata:
languageName: node
linkType: hard

"webpack-bundle-analyzer@npm:^4.10.1":
version: 4.10.1
resolution: "webpack-bundle-analyzer@npm:4.10.1"
dependencies:
"@discoveryjs/json-ext": 0.5.7
acorn: ^8.0.4
acorn-walk: ^8.0.0
commander: ^7.2.0
debounce: ^1.2.1
escape-string-regexp: ^4.0.0
gzip-size: ^6.0.0
html-escaper: ^2.0.2
is-plain-object: ^5.0.0
opener: ^1.5.2
picocolors: ^1.0.0
sirv: ^2.0.3
ws: ^7.3.1
bin:
webpack-bundle-analyzer: lib/bin/analyzer.js
checksum: 77f48f10a493b1cc95674526472978a2de32412ddbf556bd3903738f14890611426f19477352993efe5a9fd6ca16711eb912d986f2221b17ba6eeca1b6f71fb6
languageName: node
linkType: hard

"webpack-cli@npm:^5.1.4":
version: 5.1.4
resolution: "webpack-cli@npm:5.1.4"
Expand Down Expand Up @@ -15333,6 +15451,21 @@ __metadata:
languageName: node
linkType: hard

"ws@npm:^7.3.1":
version: 7.5.9
resolution: "ws@npm:7.5.9"
peerDependencies:
bufferutil: ^4.0.1
utf-8-validate: ^5.0.2
peerDependenciesMeta:
bufferutil:
optional: true
utf-8-validate:
optional: true
checksum: c3c100a181b731f40b7f2fddf004aa023f79d64f489706a28bc23ff88e87f6a64b3c6651fbec3a84a53960b75159574d7a7385709847a62ddb7ad6af76f49138
languageName: node
linkType: hard

"ws@npm:^8.11.0, ws@npm:^8.13.0":
version: 8.14.2
resolution: "ws@npm:8.14.2"
Expand Down

0 comments on commit adf5981

Please sign in to comment.