Skip to content

fix(test): rewrite vitest self-references in globals.d.ts for type-aware linting#1177

Merged
graphite-app[bot] merged 1 commit intomainfrom
fix-vitest-globals
Mar 29, 2026
Merged

fix(test): rewrite vitest self-references in globals.d.ts for type-aware linting#1177
graphite-app[bot] merged 1 commit intomainfrom
fix-vitest-globals

Conversation

@fengmk2
Copy link
Copy Markdown
Member

@fengmk2 fengmk2 commented Mar 28, 2026

The bundled globals.d.ts declares types like typeof import('vitest')['test'],
but vitest is not resolvable from the @voidzero-dev/vite-plus-test package
context in pnpm's strict node_modules layout. TypeScript silently treats the
unresolved import as any, but oxlint's type-aware linting treats it as an
error type, causing no-unsafe-call errors.

Fix by rewriting import('vitest') to import('@voidzero-dev/vite-plus-test')
during the bundleVitest() copy step, making it a self-reference that resolves
correctly via Node.js package self-referencing.

Also adds the vite-plus-vitest-global-type-minimal-repro project to ecosystem-ci.

@netlify
Copy link
Copy Markdown

netlify bot commented Mar 28, 2026

Deploy Preview for viteplus-preview canceled.

Name Link
🔨 Latest commit 33fbc2c
🔍 Latest deploy log https://app.netlify.com/projects/viteplus-preview/deploys/69c94653f8324a0008ecf914

@fengmk2 fengmk2 self-assigned this Mar 28, 2026
Copy link
Copy Markdown
Member Author

fengmk2 commented Mar 28, 2026


How to use the Graphite Merge Queue

Add the label auto-merge to this PR to add it to the merge queue.

You must have a Graphite account in order to use the merge queue. Sign up using this link.

An organization admin has enabled the Graphite Merge Queue in this repository.

Please do not merge from GitHub as this will restart CI on PRs being processed by the merge queue.

This stack of pull requests is managed by Graphite. Learn more about stacking.

fengmk2 added a commit that referenced this pull request Mar 28, 2026
…orce-migrate mode

In `rewriteStandaloneProject`, when `VITE_PLUS_FORCE_MIGRATE=1`:
- The pnpm overrides didn't include `vite-plus` itself (only vite, vitest, etc.)
- The devDependency wasn't updated if `vite-plus` already existed

This caused ecosystem-ci to install the published `vite-plus@0.1.14` instead of
the local `vite-plus@0.0.0` tgz, failing the `verify-install.ts` check.

Closes #1177
fengmk2 added a commit to why-reproductions-are-required/vite-plus-vitest-global-type-minimal-repro that referenced this pull request Mar 28, 2026
@fengmk2
Copy link
Copy Markdown
Member Author

fengmk2 commented Mar 28, 2026

Copy link
Copy Markdown
Collaborator

@kazupon kazupon left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

@graphite-app
Copy link
Copy Markdown

graphite-app bot commented Mar 29, 2026

Merge activity

…are linting (#1177)

The bundled globals.d.ts declares types like `typeof import('vitest')['test']`,
but `vitest` is not resolvable from the @voidzero-dev/vite-plus-test package
context in pnpm's strict node_modules layout. TypeScript silently treats the
unresolved import as `any`, but oxlint's type-aware linting treats it as an
`error` type, causing `no-unsafe-call` errors.

Fix by rewriting `import('vitest')` to `import('@voidzero-dev/vite-plus-test')`
during the bundleVitest() copy step, making it a self-reference that resolves
correctly via Node.js package self-referencing.

Also adds the vite-plus-vitest-global-type-minimal-repro project to ecosystem-ci.
@graphite-app graphite-app bot force-pushed the fix-vitest-globals branch from dfc2d61 to 33fbc2c Compare March 29, 2026 15:33
@graphite-app graphite-app bot merged commit 33fbc2c into main Mar 29, 2026
56 checks passed
@graphite-app graphite-app bot deleted the fix-vitest-globals branch March 29, 2026 15:42
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.

2 participants