diff --git a/.gitignore b/.gitignore index 04f9ab600..77a1dd8a4 100644 --- a/.gitignore +++ b/.gitignore @@ -26,3 +26,6 @@ index.html # vscode extensions .vscode + +# Stats file generated by rollup-bundle-visualizer +stats.html diff --git a/package.json b/package.json index a4ef43f4d..ea6485d72 100644 --- a/package.json +++ b/package.json @@ -5,6 +5,7 @@ "scripts": { "a11y-test": "jest a11y/ --runInBand --force-exit", "build": "vite build", + "bundle-stats": "yarn build && node -e \"require('open')('stats.html')\"", "check:i18n-en-fr": "node node_modules/@opentripplanner/scripts/lib/run-validate-i18n.js lib i18n/en-US.yml i18n/fr.yml", "unit": "jest __tests__/", "lint": "lint-staged", @@ -188,6 +189,7 @@ "puppeteer": "^10.2.0", "react-scripts": "^4.0.3", "redux-mock-store": "^1.5.3", + "rollup-plugin-visualizer": "^6.0.4", "semantic-release": "^17.2.3", "tsdx": "https://github.com/ibi-group/tsdx", "typescript": "^4.4.2", diff --git a/vite.config.js b/vite.config.js index 4ae1e1fc5..b933ee6d4 100644 --- a/vite.config.js +++ b/vite.config.js @@ -2,6 +2,7 @@ import path from 'path' import { defineConfig, transformWithEsbuild } from 'vite' import { nodePolyfills } from 'vite-plugin-node-polyfills' +import { visualizer } from 'rollup-plugin-visualizer' import { yamlPlugin } from 'esbuild-plugin-yaml' import fs from 'fs-extra' import raw from 'vite-raw-plugin' @@ -125,6 +126,7 @@ export default defineConfig({ raw({ fileRegex: /\.graphql$/ }), + visualizer(), react() ], server: { diff --git a/yarn.lock b/yarn.lock index 6de8c96bd..1b1dca4e9 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7525,6 +7525,11 @@ define-data-property@^1.0.1, define-data-property@^1.1.4: es-errors "^1.3.0" gopd "^1.0.1" +define-lazy-prop@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f" + integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og== + define-properties@^1.1.2, define-properties@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" @@ -10811,7 +10816,7 @@ is-directory@^0.3.1: resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE= -is-docker@^2.0.0: +is-docker@^2.0.0, is-docker@^2.1.1: version "2.2.1" resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== @@ -14191,6 +14196,15 @@ open@^7.0.2, open@^7.4.2: is-docker "^2.0.0" is-wsl "^2.1.1" +open@^8.0.0: + version "8.4.2" + resolved "https://registry.yarnpkg.com/open/-/open-8.4.2.tgz#5b5ffe2a8f793dcd2aad73e550cb87b59cb084f9" + integrity sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ== + dependencies: + define-lazy-prop "^2.0.0" + is-docker "^2.1.1" + is-wsl "^2.2.0" + opener@^1.5.2: version "1.5.2" resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.2.tgz#5d37e1f35077b9dcac4301372271afdeb2a13598" @@ -16999,6 +17013,16 @@ rollup-plugin-typescript2@^0.27.3: resolve "1.17.0" tslib "2.0.1" +rollup-plugin-visualizer@^6.0.4: + version "6.0.4" + resolved "https://registry.yarnpkg.com/rollup-plugin-visualizer/-/rollup-plugin-visualizer-6.0.4.tgz#d0217a3eb3f7f1e936dbbb4ad9638db50577098c" + integrity sha512-q8Q7J/6YofkmaGW1sH/fPRAz37x/+pd7VBuaUU7lwvOS/YikuiiEU9jeb9PH8XHiq50XFrUsBbOxeAMYQ7KZkg== + dependencies: + open "^8.0.0" + picomatch "^4.0.2" + source-map "^0.7.4" + yargs "^17.5.1" + rollup-pluginutils@^2.8.1, rollup-pluginutils@^2.8.2: version "2.8.2" resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz#72f2af0748b592364dbd3389e600e5a9444a351e" @@ -17771,6 +17795,11 @@ source-map@^0.7.3, source-map@~0.7.2: resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== +source-map@^0.7.4: + version "0.7.6" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.6.tgz#a3658ab87e5b6429c8a1f3ba0083d4c61ca3ef02" + integrity sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ== + source-map@~0.1.30: version "0.1.43" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.1.43.tgz#c24bc146ca517c1471f5dacbe2571b2b7f9e3346" @@ -20118,6 +20147,19 @@ yargs@^17.0.0: y18n "^5.0.5" yargs-parser "^21.1.1" +yargs@^17.5.1: + version "17.7.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" + integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== + dependencies: + cliui "^8.0.1" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.3" + y18n "^5.0.5" + yargs-parser "^21.1.1" + yauzl@^2.10.0: version "2.10.0" resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9"