From bbbf4c5f89a24f08b911f7c06e3414bd1ba05907 Mon Sep 17 00:00:00 2001 From: Eric Joanis Date: Wed, 7 Oct 2026 16:38:10 -0400 Subject: [PATCH 1/2] fix: update browserslist on install and merge rather than on serve Having serve depend on update-browserslist can cause a race condition when you're using npx nx run-many because one process (update-browserslist) is changing packages while others (serve-es, serve-fr, serve web-component) are compiling from them. Also, having serve depend on update-browerslist makes serve much slower on my Windows machine, because the latter can easily take a minute. We want to automate it, yes, but Del and I agree that on install is a better time and place to automate it than on serve, and it's plently often enough to satisfy our requirements. squashed with: chore: add browserslist update to post-merge hook (#625) This means that when you git merge, you'll get the latest browserslist db too. squashed with: fix: remove .husky/post-install since it does not do anything There is no post-install hook in git, that's an npm thing so postinstall scripts need to go in package.json, not in .husky. --- .husky/post-install | 1 - .husky/post-merge | 1 + package-lock.json | 1 + package.json | 3 ++- packages/studio-web/project.json | 1 - 5 files changed, 4 insertions(+), 3 deletions(-) delete mode 100644 .husky/post-install create mode 100755 .husky/post-merge diff --git a/.husky/post-install b/.husky/post-install deleted file mode 100644 index 76ceb88b3..000000000 --- a/.husky/post-install +++ /dev/null @@ -1 +0,0 @@ -npx playwright install --with-deps firefox chromium webkit diff --git a/.husky/post-merge b/.husky/post-merge new file mode 100755 index 000000000..c35e3af69 --- /dev/null +++ b/.husky/post-merge @@ -0,0 +1 @@ +npx update-browserslist-db@latest diff --git a/package-lock.json b/package-lock.json index b5b120f1a..0077603ba 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,6 +5,7 @@ "packages": { "": { "name": "root", + "hasInstallScript": true, "license": "(MIT AND BSD-3-Clause)", "workspaces": [ "packages/*" diff --git a/package.json b/package.json index 263781878..85c59b9b1 100644 --- a/package.json +++ b/package.json @@ -82,7 +82,8 @@ "zone.js": "~0.15.0" }, "scripts": { - "prepare": "husky" + "prepare": "husky", + "postinstall": "npx -y update-browserslist-db@latest" }, "commitlint": { "extends": [ diff --git a/packages/studio-web/project.json b/packages/studio-web/project.json index efc71bba5..ebceeb125 100644 --- a/packages/studio-web/project.json +++ b/packages/studio-web/project.json @@ -92,7 +92,6 @@ }, "serve": { "executor": "@angular-builders/custom-webpack:dev-server", - "dependsOn": ["update-browserslist"], "configurations": { "production-en": { "buildTarget": "studio-web:build:production,en" From 47422463353626451a9d95a730566dc98657f04c Mon Sep 17 00:00:00 2001 From: Eric Joanis Date: Thu, 8 Oct 2026 11:49:45 -0400 Subject: [PATCH 2/2] ci: do not re-update browserslist unecessarily --- .github/workflows/bundle.yml | 1 + .github/workflows/deploy.yml | 1 + .github/workflows/dev-preview.yml | 1 - .github/workflows/pr-preview.yml | 4 ---- .github/workflows/release.yml | 1 + .github/workflows/windows-tests.yml | 1 - 6 files changed, 3 insertions(+), 6 deletions(-) diff --git a/.github/workflows/bundle.yml b/.github/workflows/bundle.yml index adf3692a4..a84cd4845 100644 --- a/.github/workflows/bundle.yml +++ b/.github/workflows/bundle.yml @@ -19,6 +19,7 @@ jobs: - run: npm install -g npm@latest - run: npm ci - run: npx update-browserslist-db@latest + # redundant, npm ci also updates browserslist, but for release we redo it just in case - run: npx nx bundle web-component - name: Create Pull Request uses: peter-evans/create-pull-request@98357b18bf14b5342f975ff684046ec3b2a07725 # v8.0.0 diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index cb51a8698..a486c85c3 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -21,6 +21,7 @@ jobs: - run: npm install -g npm@latest - run: npm ci - run: npx update-browserslist-db@latest + # redundant, npm ci also updates browserslist, but for deploy we redo it just in case - name: Build web-component run: | # create the bundles required for studio-web diff --git a/.github/workflows/dev-preview.yml b/.github/workflows/dev-preview.yml index a0a7e47a7..89fd8993b 100644 --- a/.github/workflows/dev-preview.yml +++ b/.github/workflows/dev-preview.yml @@ -21,7 +21,6 @@ jobs: node-version: "24" - run: npm install -g npm@latest - run: npm ci - - run: npx update-browserslist-db@latest - name: Build web-component run: | # create the bundles required for studio-web diff --git a/.github/workflows/pr-preview.yml b/.github/workflows/pr-preview.yml index c8651b64b..c68931667 100644 --- a/.github/workflows/pr-preview.yml +++ b/.github/workflows/pr-preview.yml @@ -31,10 +31,6 @@ jobs: if: github.event.action != 'closed' run: | npm ci - - name: Always preview with the latest browserslist db - if: github.event.action != 'closed' - run: | - npx update-browserslist-db@latest - name: Build web-component if: github.event.action != 'closed' run: | diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 4397433e6..3273d63e8 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -39,6 +39,7 @@ jobs: run: npm install -g npm@latest - run: npm ci - run: npx update-browserslist-db@latest + # redundant, npm ci also updates browserslist, but for release we redo it just in case - name: Build and bundle run: | npx nx bundle web-component diff --git a/.github/workflows/windows-tests.yml b/.github/workflows/windows-tests.yml index 501b47aad..2f392011c 100644 --- a/.github/workflows/windows-tests.yml +++ b/.github/workflows/windows-tests.yml @@ -19,7 +19,6 @@ jobs: node-version: 24 - run: npm install -g npm@latest - run: npm ci --verbose - - run: npx update-browserslist-db@latest - name: Ng unit test for studio-web run: |