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 into
mainfrom
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 into
mainfrom
fix-vitest-globals

Conversation

@fengmk2

Copy link
Copy Markdown
Member

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

netlifyBot commented Mar 28, 2026

Copy link
Copy Markdown

Deploy Preview for viteplus-preview canceled.

NameLink
🔨 Latest commit33fbc2c
🔍 Latest deploy loghttps://app.netlify.com/projects/viteplus-preview/deploys/69c94653f8324a0008ecf914

@fengmk2fengmk2 self-assigned this Mar 28, 2026
@fengmk2Graphite App

fengmk2 commented Mar 28, 2026

Copy link
Copy Markdown
MemberAuthor

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
MemberAuthor

@kazuponkazupon left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

LGTM!

@graphite-app

graphite-appBot commented Mar 29, 2026

Copy link
Copy Markdown

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-appBot merged commit 33fbc2c into mainMar 29, 2026
56 checks passed
@graphite-app
graphite-appBot deleted the fix-vitest-globals branch March 29, 2026 15:42
Sign up for freeto 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

@fengmk2@kazupon