Skip to content

build(frontend): replace terser with oxc minifier and update dependencies - #4458

Merged
harehare merged 6 commits into
mainfrom
chore/update-dependencies-and-toolchain
Oct 29, 2026
Merged

harehare merged 6 commits into
mainfrom
chore/update-dependencies-and-toolchain

Conversation

@harehare

Copy link
Copy Markdown
Owner

No description provided.

Pin the latest Node.js LTS and the latest stable Go. The previous pins
were stale: .tool-versions had Go 1.25.0 and the Dockerfile had Go
1.26.2, both older than the `go 1.27.0` required by go.mod, and
frontend/.tool-versions pinned an uninstalled Node.js 24.15.0.
Update direct Go dependencies, including chi 5.5.0, pgx 5.11.0,
grpc 1.85.0, gqlgen 0.17.98, firebase.google.com/go 4.22.0 and
google.golang.org/api 0.310.0.

Regenerate internal/presentation/graphql/generated.go with gqlgen
0.17.98, since the previous output no longer compiled against the
updated runtime.
Major updates: vite 8, vite-plugin-pwa 2, firebase 13, @sentry/browser 11,
@sentry/vite-plugin 11, monaco-editor 0.57, size-limit 14, oxfmt 0.75,
@types/node 26 and stylelint-config-standard 40. Minor and patch updates
for the remaining packages.

monaco-editor 0.56 reorganized its exports, so import editor.api and
editor.worker from `monaco-editor/editor/...` instead of
`monaco-editor/esm/vs/editor/...`.

elm and elm-test 0.19.3-0 are left as is, since the compiler version
must match elm.json.
`pnpm prod` failed because terser's `unsafe` option crashes on
`RegExp.lastMatch` in svgo's browser bundle. Use vite 8's oxc minifier
instead, and map the former terser options:

- pure_funcs -> treeshake.manualPureFunctions
- drop_console -> output.minify.compress.dropConsole
- rollupOptions -> rolldownOptions (rollupOptions is deprecated)

Exclude ts.worker from the PWA precache. At about 6.6 MB it exceeds the
5 MB limit, which made vite-plugin-pwa fail the build.

terser stays in devDependencies for the build:lib and build:vscode scripts.
golangci-lint 2.15.0 reports G407 (hardcoded IV) for the iv slice, which
is taken from a make'd buffer. It is filled from crypto/rand right
before use, so this is a false positive.
The backend_test job exceeded the 2m timeout on a runner with a cold
cache.
@harehare
harehare merged commit 2701151 into main Oct 29, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant