`lazyPlugins` docs: dynamic import of a local module still slows down config loading
Les mainteneurs répondent en général sous 1 jour
Une pull request liée a déjà été fusionnée.
- #2967 par @kshanxs — fusionnée
Évaluation
- Difficulté
- 1/5
- Temps estimé
- Moins d'une heure
- Accessibilité débutants
- 78/100
- Type d'issue
- Documentation
- Clarté
- Clairement spécifiée
- Activité
- Active
- Stack technique
- node.js, typescript
- Domaine
- documentation
Piste de recherche
La modification se fait dans la source de documentation derrière https://viteplus.dev/guide/troubleshooting#slow-config-loading-caused-by-heavy-plugins (une page dans la documentation du guide, probablement docs/guide/troubleshooting.md). Lisez l'astuce lazyPlugins existante, puis reproduisez avec les deux fichiers de configuration dans le corps de l'issue et vp fmt --check vite.config.ts pour voir la différence de 0.24s vs 0.60s. Terminé signifie que l'astuce indique que le import() lazy doit cibler des packages plutôt que des modules locaux, car les modules locaux sont empaquetés avec la config ainsi que leurs imports ; mentionnez éventuellement l'alternative configLoader: 'native'.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Documentation is
- Missing
- Outdated
- Confusing
- Not sure
Explain in Detail
The troubleshooting section suggests lazyPlugins with dynamic import() for heavy plugins. This only helps if the imports target packages.
Standalone Oxfmt and Oxlint read JSON configs. In Vite+, vp fmt, vp lint, and editor integrations read the fmt and lint blocks from vite.config.ts via resolveConfig({ configFile }, 'build'), which uses configLoader: 'bundle'. The bundler follows import('./vite.plugins.ts') and processes its package imports, even though lazyPlugins skips the callback and the module never executes.
vp fmt --check vite.config.ts, median of 5 runs:
plugins |
Time |
|---|---|
| None | 0.24s |
lazyPlugins + await import('<package>') |
0.24s |
lazyPlugins + await import('./vite.plugins.ts') |
0.60s |
lazyPlugins + await import('./vite.empty.ts') (no imports) |
0.24s |
lazyPlugins + await import(new URL('./vite.plugins.ts', import.meta.url).href) |
0.24s |
vite-plus 1.0.0, Node.js 26.10.0, pnpm 12.6.0, Linux x64. Related: #2845
Your Suggestion for Changes
Note that the lazy import() should target packages, not local modules. Local modules are bundled with the config, including their imports.
Alternatively, metadata-only loads could skip bundling (e.g. configLoader: 'native').
Relevant Page
https://viteplus.dev/guide/troubleshooting#slow-config-loading-caused-by-heavy-plugins
Reproduction (Optional)
No response
Steps to reproduce (Optional)
// vite.plugins.ts
import { sentrySvelteKit } from '@sentry/sveltekit/vite';
import { sveltekit } from '@sveltejs/kit/vite';
import tailwindcss from '@tailwindcss/vite';
export const plugins = [tailwindcss(), sentrySvelteKit(), sveltekit()];
// vite.config.ts
import { defineConfig, lazyPlugins } from 'vite-plus';
export default defineConfig({
plugins: lazyPlugins(async () => {
const { plugins } = await import('./vite.plugins.ts');
return plugins;
}),
fmt: {},
});
Run vp fmt --check vite.config.ts, then compare with the plugins imported from packages directly inside lazyPlugins.
- Langage dominant
- Rust
- Étoiles
- 6.3k
- Forks
- 283
- Merge moyen
- 1 j 12 h
- PR mergées (30 j)
- 205
Préparer son environnement
Lance le conteneur de développement du projet dans votre navigateur, avec votre propre compte GitHub.
- Aucun Dockerfile ni fichier Docker Compose
- Aucun modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de voidzero-dev/vite-plus
-
pending triage
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
voidzero-dev/vite-plus#2882 · 2 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
enhancement
Difficulté 2/5 1-3 heures Accessibilité débutants 62/100
voidzero-dev/vite-plus#2097 · 10 commentaires · 2 réactions ·
Les mainteneurs répondent en général sous 1 jour
-
pending triage
Difficulté 3/5 1-2 jours Accessibilité débutants 45/100
voidzero-dev/vite-plus#3092 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 4/5 3-5 jours Accessibilité débutants 35/100
voidzero-dev/vite-plus#3091 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 4/5 3-5 jours Accessibilité débutants 30/100
voidzero-dev/vite-plus#3090 ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de voidzero-dev/vite-plus
Issues similaires
-
test: sim_zero_omega_tests race on shared temp-file names, so two pairs of tests fail at randomOuverte
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 88/100
pop-os/cosmic-comp#2956 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
Les mainteneurs répondent en général sous 1 jour
-
area:release criticality:p3 documentation
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
registrystack/registry-stack#2085 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 85/100
libp2p/rust-libp2p#6694 ·
Les mainteneurs répondent en général sous 1 jour