Skip to content

chore: update dev and CI dependencies to latest#23

Open
bnimit wants to merge 2 commits into
mainfrom
chore/deps-full-update
Open

chore: update dev and CI dependencies to latest#23
bnimit wants to merge 2 commits into
mainfrom
chore/deps-full-update

Conversation

@bnimit

@bnimit bnimit commented Jun 15, 2026

Copy link
Copy Markdown
Contributor

Summary

Updates all dev/CI tooling to its latest versions and adjusts configs for the breaking changes. The library and example app both build, type-check, lint, and test clean.

Packages

Majors: vite 7→8.0.16 · @vitejs/plugin-react 5→6.0.2 · eslint 9→10.5.0 · eslint-config-reearth 0.3.8→0.4.0 · typescript 5.9→6.0.3 · jsdom 27→29.1.1 · vite-plugin-dts 4→5.0.2 · vite-plugin-svgr 4→5.2.0 · vite-plugin-css-injected-by-js 3→5.0.1
Minors/patches: vitest →4.1.9 · prettier →3.8.4 · postcss →8.5.15 · react/react-dom →19.2.7 · @types/react →19.2.17
Resolutions: @babel/runtime →7.29.7 · js-yaml →4.2.0
Added: @microsoft/api-extractor 7.58.9 (required peer for .d.ts bundling)
Example app: brought up from vite 3 / typescript 4.8 / @vitejs/plugin-react 2
CI: actions/checkout v6.0.2 → v6.0.3 (SHA-pinned, all 3 workflows)

Config changes required by the upgrades

Change Why
vite.config.tsvite.config.mts vite-plugin-css-injected-by-js@5 is ESM-only; Vite 8 loaded the CJS-default config via require and failed. .mts forces ESM loading without making the package "type":"module" (which would break the UMD require output).
rollupTypes: truebundleTypes: true vite-plugin-dts@5 (now unplugin-dts) renamed the option; the old name was silently ignored, splitting types instead of bundling into one index.d.ts.
moduleResolution: "node""bundler" (both tsconfigs) TS 6 errors on the deprecated node10 resolution.
example esModuleInterop: falsetrue TS 6 deprecates explicitly setting it false.

Bugs surfaced & fixed

  1. exports map had no types condition — modern consumers (moduleResolution: bundler/node16) couldn't resolve the library's types. Added "types" as the first export condition. (Masked before because the example used legacy node resolution.)
  2. Example missing src/vite-env.d.ts — added the standard vite/client reference so CSS side-effect imports type-check.

Verification

Step Root Example
install --frozen-lockfile
lint ✅ (0 errors; 8 pre-existing type-import warnings, non-failing)
type (tsc)
test ✅ 6/6
build ✅ (.mjs + .umd.js + bundled index.d.ts)

Note: api-extractor 7.58.9 (latest) prints a harmless TypeScript 6.0.3 … is newer than the bundled compiler engine warning during .d.ts bundling. The rollup still succeeds and output is correct; it'll clear once api-extractor ships a TS 6 build.

🤖 Generated with Claude Code

Bumps all devDependencies and CI tooling to their latest versions and
adjusts configs for the resulting breaking changes.

Majors: vite 7->8, @vitejs/plugin-react 5->6, eslint 9->10,
eslint-config-reearth 0.3.8->0.4.0, typescript 5.9->6, jsdom 27->29,
vite-plugin-dts 4->5, vite-plugin-svgr 4->5,
vite-plugin-css-injected-by-js 3->5. Minors/patches: vitest, prettier,
postcss, react/react-dom, @types/react. Resolutions: @babel/runtime,
js-yaml. Example app brought up from vite 3 / ts 4.8 / plugin-react 2.
CI: actions/checkout v6.0.2 -> v6.0.3 (SHA-pinned).

Config changes required by the upgrades:
- Rename vite.config.ts -> vite.config.mts so Vite 8 loads the config as
  ESM (vite-plugin-css-injected-by-js@5 is ESM-only).
- vite-plugin-dts@5 renamed `rollupTypes` -> `bundleTypes`; add
  @microsoft/api-extractor (now a required peer for type bundling).
- moduleResolution "node" -> "bundler" (TS 6 deprecates node10).
- example: esModuleInterop false -> true (TS 6 deprecates setting false).

Bugs surfaced and fixed:
- Add a `types` condition to the package `exports` map so modern
  consumers (bundler/node16 resolution) can resolve the library's types.
- Add example/src/vite-env.d.ts for vite/client ambient types.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@bnimit bnimit self-assigned this Jun 15, 2026
eslint-config-reearth@0.4.0 requires Node >=22.13.0, which broke the
Node 20 CI job at install. Node 20 reached EOL on 2026-04-30, so drop it
rather than pin the config back:

- CI matrix 20.x/22.x -> 22.x/24.x
- release.yml setup-node 20 -> 22 (it also runs `yarn install`)
- engines.node ">=20" -> ">=22.13.0"

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant