Hacktoberfest 2026 : les issues que les mainteneurs ont marquées pour octobre, ouvertes et accessibles aux débutants. Parcourir les issues Hacktoberfest

`vite-plus/test/browser-playwright` types import `playwright`, which vite-plus does not declare, so provider options go unchecked under pnpm

Fermée Adaptée aux débutants
#2,854 0 commentaires 0 réactions 1 personne assignée Voir sur GitHub

Les mainteneurs répondent en général sous 1 jour

@liangmiQwQ y travaille déjà.

Depuis le 2/10/2026.

  • #2865 par @liangmiQwQ — ouverte

Évaluation

Difficulté
2/5
Temps estimé
1-3 heures
Accessibilité débutants
84/100
Type d'issue
Bug
Clarté
Clairement spécifiée
Activité
Active
Stack technique
playwright, typescript

Piste de recherche

Commencez par vite-plus/dist/test/browser-playwright.d.ts et les métadonnées du package qui contrôlent ses dépendances peer. Ajoutez playwright comme peer facultatif, puis exécutez la reproduction fournie avec pnpm et vp check pour confirmer que les contextOptions invalides sont rejetées et que les types de déclaration sont résolus correctement.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

pending triage

What happens

vite-plus/dist/test/browser-playwright.d.ts imports types from playwright:

import { Page, Frame, FrameLocator, BrowserContext, CDPSession, Browser, LaunchOptions, ConnectOptions, BrowserContextOptions } from 'playwright';

vite-plus doesn't declare playwright as a dependency or a peer. It only declares @vitest/browser-playwright as an optional peer. With pnpm's isolated layouts (confirmed with virtualStoreType: global), vite-plus's own slot therefore has no playwright, and TypeScript can't resolve the import. With skipLibCheck: true (the usual setting), the Playwright types in the provider's declarations silently lose their meaning:

  • playwright({ contextOptions }) is unchecked, so contextOptions: { reducedMotion: "bogus" } compiles;
  • cdp().send(...), typed through the CDPSession augmentation, is error-typed, so type-aware Oxlint reports no-unsafe-call on every call.

Repro

  1. A pnpm project with virtualStoreType: global and [email protected], [email protected] and @vitest/[email protected] as devDependencies.
  2. In vite.config.ts: provider: playwright({ contextOptions: { reducedMotion: "bogus" } }) from vite-plus/test/browser-playwright.
  3. vp check passes.
  4. ls vite-plus's slot (<store>/links/@/vite-plus/1.0.0/<hash>/node_modules/): vitest, vite, oxlint… but no playwright.

Proposal

Declare playwright as an optional peer of vite-plus, the way @vitest/browser-playwright already is:

"peerDependencies": { "playwright": "*" },
"peerDependenciesMeta": { "playwright": { "optional": true } }

Workaround: a .pnpmfile.mjs readPackage hook that adds that optional peer to vite-plus. With it, playwright is linked into vite-plus's slot, and vp check rejects reducedMotion: "bogus" with TS2322: Type '"bogus"' is not assignable to type '"no-preference" | "reduce" | null | undefined'.

Versions: vite-plus 1.0.0, pnpm 12.8.1, playwright 1.63.0, TypeScript 7.0.2, macOS.

Langage dominant
Rust
Étoiles
6.5k
Forks
296
Merge moyen
1 j 9 h
PR mergées (30 j)
224

Préparer son environnement

Ouvrir dans Codespaces

Lance le conteneur de développement du projet dans votre navigateur, avec votre propre compte GitHub.

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de voidzero-dev/vite-plus

Toutes les issues de voidzero-dev/vite-plus

Issues similaires

Plus d'issues Rust

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.