From 40bd2349a3c599f7bb6f2cfcdfdddc573e2c8f6c Mon Sep 17 00:00:00 2001 From: Rubikscraft Date: Tue, 27 Dec 2022 16:56:59 +0100 Subject: [PATCH] Change bundle limits and build script --- frontend/angular.json | 14 +-- frontend/custom-webpack.config.js | 6 +- frontend/package.json | 2 + support/build.sh | 17 +++- yarn.lock | 137 ++++++++++++++++++++++++++++-- 5 files changed, 160 insertions(+), 16 deletions(-) diff --git a/frontend/angular.json b/frontend/angular.json index 56facb6..5c78169 100644 --- a/frontend/angular.json +++ b/frontend/angular.json @@ -21,7 +21,7 @@ "sourceRoot": "src", "architect": { "build": { - "builder": "@angular-devkit/build-angular:browser", + "builder": "@angular-builders/custom-webpack:browser", "options": { "outputPath": "dist", "index": "src/index.html", @@ -42,18 +42,22 @@ "allowedCommonJsDependencies": [ "ngx-auto-unsubscribe-decorator", "moment", - "platform" + "platform", + "form-data" ], "optimization": true, - "webWorkerTsConfig": "tsconfig.worker.json" + "webWorkerTsConfig": "tsconfig.worker.json", + "customWebpackConfig": { + "path": "./custom-webpack.config.js" + } }, "configurations": { "production": { "budgets": [ { "type": "initial", - "maximumWarning": "500kb", - "maximumError": "1mb" + "maximumWarning": "1mb", + "maximumError": "2mb" }, { "type": "anyComponentStyle", diff --git a/frontend/custom-webpack.config.js b/frontend/custom-webpack.config.js index 0357b87..7e17876 100644 --- a/frontend/custom-webpack.config.js +++ b/frontend/custom-webpack.config.js @@ -1,5 +1,9 @@ import webpack from 'webpack'; +// import { BundleAnalyzerPlugin } from 'webpack-bundle-analyzer'; export default { - plugins: [new webpack.ContextReplacementPlugin(/moment[\/\\]locale$/, /en/)], + plugins: [ + new webpack.ContextReplacementPlugin(/moment[\/\\]locale$/, /en/), + // new BundleAnalyzerPlugin(), + ], }; diff --git a/frontend/package.json b/frontend/package.json index c75f718..c1b5f72 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -14,6 +14,7 @@ "purge": "rm -rf dist && rm -rf node_modules && rm -rf .angular" }, "devDependencies": { + "@angular-builders/custom-webpack": "^15.0.0", "@angular-devkit/build-angular": "^15.0.4", "@angular/animations": "^15.0.4", "@angular/cdk": "^15.0.3", @@ -53,6 +54,7 @@ "rxjs": "^7.8.0", "tslib": "^2.4.1", "typescript": "^4.9.4", + "webpack-bundle-analyzer": "^4.7.0", "zod": "^3.20.2", "zone.js": "^0.12.0" } diff --git a/support/build.sh b/support/build.sh index 813c633..9298921 100755 --- a/support/build.sh +++ b/support/build.sh @@ -23,19 +23,34 @@ VERSION=$(cat ../package.json | grep version | head -1 | awk -F: '{ print $2 }' echo "Building version $VERSION" -docker buildx create --append --use --name picsur +# Allow host networking for buildx +docker buildx create --append --use --name picsur --driver-opt network=host docker buildx build \ --push \ + --network host \ -t "$PACKAGE_URL-stage1:$VERSION" \ -t "$PACKAGE_URL-stage1:latest" \ -f ./picsur-stage1.Dockerfile .. +# Exit if stage1 build failed +if [ $? -ne 0 ]; then + echo "Stage1 build failed" + exit 1 +fi + docker buildx build \ --platform linux/amd64,linux/arm64 \ --push \ + --network host \ -t "$PACKAGE_URL:$VERSION" \ -t "$PACKAGE_URL:latest" \ -f ./picsur-stage2.Dockerfile .. +# Exit if stage2 build failed +if [ $? -ne 0 ]; then + echo "Stage2 build failed" + exit 1 +fi + echo "Done pushing $PACKAGE_URL:$VERSION" diff --git a/yarn.lock b/yarn.lock index cfe2abe..3c35778 100644 --- a/yarn.lock +++ b/yarn.lock @@ -15,7 +15,24 @@ __metadata: languageName: node linkType: hard -"@angular-devkit/architect@npm:0.1500.4": +"@angular-builders/custom-webpack@npm:^15.0.0": + version: 15.0.0 + resolution: "@angular-builders/custom-webpack@npm:15.0.0" + dependencies: + "@angular-devkit/architect": ">=0.1500.0 < 0.1600.0" + "@angular-devkit/build-angular": ^15.0.0 + "@angular-devkit/core": ^15.0.0 + lodash: ^4.17.15 + ts-node: ^10.0.0 + tsconfig-paths: ^4.1.0 + webpack-merge: ^5.7.3 + peerDependencies: + "@angular/compiler-cli": ^15.0.0 + checksum: 3f69163c7893c1f5eadccfad76c8432ca8b38066cf43f54c16645b8435d73b30db20d5499d30f0dea620893daa68f32bc1eef1e7d08bdb6e19cf2245f4e13448 + languageName: node + linkType: hard + +"@angular-devkit/architect@npm:0.1500.4, @angular-devkit/architect@npm:>=0.1500.0 < 0.1600.0": version: 0.1500.4 resolution: "@angular-devkit/architect@npm:0.1500.4" dependencies: @@ -25,7 +42,7 @@ __metadata: languageName: node linkType: hard -"@angular-devkit/build-angular@npm:^15.0.4": +"@angular-devkit/build-angular@npm:^15.0.0, @angular-devkit/build-angular@npm:^15.0.4": version: 15.0.4 resolution: "@angular-devkit/build-angular@npm:15.0.4" dependencies: @@ -170,7 +187,7 @@ __metadata: languageName: node linkType: hard -"@angular-devkit/core@npm:15.0.4": +"@angular-devkit/core@npm:15.0.4, @angular-devkit/core@npm:^15.0.0": version: 15.0.4 resolution: "@angular-devkit/core@npm:15.0.4" dependencies: @@ -3339,6 +3356,13 @@ __metadata: languageName: node linkType: hard +"@polka/url@npm:^1.0.0-next.20": + version: 1.0.0-next.21 + resolution: "@polka/url@npm:1.0.0-next.21" + checksum: c7654046d38984257dd639eab3dc770d1b0340916097b2fac03ce5d23506ada684e05574a69b255c32ea6a144a957c8cd84264159b545fca031c772289d88788 + languageName: node + linkType: hard + "@schematics/angular@npm:15.0.4": version: 15.0.4 resolution: "@schematics/angular@npm:15.0.4" @@ -4088,13 +4112,22 @@ __metadata: languageName: node linkType: hard -"acorn-walk@npm:^8.1.1": +"acorn-walk@npm:^8.0.0, 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.8.1 + resolution: "acorn@npm:8.8.1" + bin: + acorn: bin/acorn + checksum: 4079b67283b94935157698831967642f24a075c52ce3feaaaafe095776dfbe15d86a1b33b1e53860fc0d062ed6c83f4284a5c87c85b9ad51853a01173da6097f + languageName: node + linkType: hard + "acorn@npm:^8.4.1, acorn@npm:^8.5.0, acorn@npm:^8.7.1, acorn@npm:^8.8.0": version: 8.8.0 resolution: "acorn@npm:8.8.0" @@ -5082,6 +5115,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 + "commondir@npm:^1.0.1": version: 1.0.1 resolution: "commondir@npm:1.0.1" @@ -5587,7 +5627,7 @@ __metadata: languageName: node linkType: hard -"duplexer@npm:~0.1.1": +"duplexer@npm:^0.1.2, duplexer@npm:~0.1.1": version: 0.1.2 resolution: "duplexer@npm:0.1.2" checksum: 62ba61a830c56801db28ff6305c7d289b6dc9f859054e8c982abd8ee0b0a14d2e9a8e7d086ffee12e868d43e2bbe8a964be55ddbd8c8957714c87373c7a4f9b0 @@ -6949,6 +6989,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" @@ -8017,7 +8066,7 @@ __metadata: languageName: node linkType: hard -"lodash@npm:4.17.21, lodash@npm:^4.17.15, lodash@npm:^4.17.19, lodash@npm:^4.17.21": +"lodash@npm:4.17.21, lodash@npm:^4.17.15, lodash@npm:^4.17.19, lodash@npm:^4.17.20, lodash@npm:^4.17.21": version: 4.17.21 resolution: "lodash@npm:4.17.21" checksum: eb835a2e51d381e561e508ce932ea50a8e5a68f4ebdd771ea240d3048244a8d13658acbd502cd4829768c56f2e16bdd4340b9ea141297d472517b83868e677f7 @@ -8455,6 +8504,13 @@ __metadata: languageName: node linkType: hard +"mrmime@npm:^1.0.0": + version: 1.0.1 + resolution: "mrmime@npm:1.0.1" + checksum: cc979da44bbbffebaa8eaf7a45117e851f2d4cb46a3ada6ceb78130466a04c15a0de9a9ce1c8b8ba6f6e1b8618866b1352992bf1757d241c0ddca558b9f28a77 + languageName: node + linkType: hard + "ms@npm:3.0.0-canary.1": version: 3.0.0-canary.1 resolution: "ms@npm:3.0.0-canary.1" @@ -9017,6 +9073,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 + "optionator@npm:^0.9.1": version: 0.9.1 resolution: "optionator@npm:0.9.1" @@ -9553,6 +9618,7 @@ __metadata: version: 0.0.0-use.local resolution: "picsur-frontend@workspace:frontend" dependencies: + "@angular-builders/custom-webpack": ^15.0.0 "@angular-devkit/build-angular": ^15.0.4 "@angular/animations": ^15.0.4 "@angular/cdk": ^15.0.3 @@ -9592,6 +9658,7 @@ __metadata: rxjs: ^7.8.0 tslib: ^2.4.1 typescript: ^4.9.4 + webpack-bundle-analyzer: ^4.7.0 zod: ^3.20.2 zone.js: ^0.12.0 languageName: unknown @@ -10787,6 +10854,17 @@ __metadata: languageName: node linkType: hard +"sirv@npm:^1.0.7": + version: 1.0.19 + resolution: "sirv@npm:1.0.19" + dependencies: + "@polka/url": ^1.0.0-next.20 + mrmime: ^1.0.0 + totalist: ^1.0.0 + checksum: c943cfc61baf85f05f125451796212ec35d4377af4da90ae8ec1fa23e6d7b0b4d9c74a8fbf65af83c94e669e88a09dc6451ba99154235eead4393c10dda5b07c + languageName: node + linkType: hard + "slash@npm:^3.0.0": version: 3.0.0 resolution: "slash@npm:3.0.0" @@ -11403,6 +11481,13 @@ __metadata: languageName: node linkType: hard +"totalist@npm:^1.0.0": + version: 1.1.0 + resolution: "totalist@npm:1.1.0" + checksum: dfab80c7104a1d170adc8c18782d6c04b7df08352dec452191208c66395f7ef2af7537ddfa2cf1decbdcfab1a47afbbf0dec6543ea191da98c1c6e1599f86adc + languageName: node + linkType: hard + "tr46@npm:~0.0.3": version: 0.0.3 resolution: "tr46@npm:0.0.3" @@ -11434,7 +11519,7 @@ __metadata: languageName: node linkType: hard -"ts-node@npm:^10.9.1": +"ts-node@npm:^10.0.0, ts-node@npm:^10.9.1": version: 10.9.1 resolution: "ts-node@npm:10.9.1" dependencies: @@ -11510,7 +11595,7 @@ __metadata: languageName: node linkType: hard -"tsconfig-paths@npm:^4.0.0, tsconfig-paths@npm:^4.1.1": +"tsconfig-paths@npm:^4.0.0, tsconfig-paths@npm:^4.1.0, tsconfig-paths@npm:^4.1.1": version: 4.1.1 resolution: "tsconfig-paths@npm:4.1.1" dependencies: @@ -11926,6 +12011,25 @@ __metadata: languageName: node linkType: hard +"webpack-bundle-analyzer@npm:^4.7.0": + version: 4.7.0 + resolution: "webpack-bundle-analyzer@npm:4.7.0" + dependencies: + acorn: ^8.0.4 + acorn-walk: ^8.0.0 + chalk: ^4.1.0 + commander: ^7.2.0 + gzip-size: ^6.0.0 + lodash: ^4.17.20 + opener: ^1.5.2 + sirv: ^1.0.7 + ws: ^7.3.1 + bin: + webpack-bundle-analyzer: lib/bin/analyzer.js + checksum: 4ce3b379c61ce16b2219756843407cc99f2b82cd191f653043f1b705a3e32b3af03834af0dfded98ab852313a892a148bed1a8effaacd6440f028c19f41581f3 + languageName: node + linkType: hard + "webpack-dev-middleware@npm:5.3.3, webpack-dev-middleware@npm:^5.3.1": version: 5.3.3 resolution: "webpack-dev-middleware@npm:5.3.3" @@ -11985,7 +12089,7 @@ __metadata: languageName: node linkType: hard -"webpack-merge@npm:5.8.0": +"webpack-merge@npm:5.8.0, webpack-merge@npm:^5.7.3": version: 5.8.0 resolution: "webpack-merge@npm:5.8.0" dependencies: @@ -12198,6 +12302,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.4.2": version: 8.8.0 resolution: "ws@npm:8.8.0"