`lazyPlugins` docs: dynamic import of a local module still slows down config loading
Mantenedores costumam responder em até 1 dia
Um pull request relacionado já foi integrado.
- #2967 de @kshanxs — integrado
Avaliação
- Dificuldade
- 1/5
- Tempo estimado
- Menos de uma hora
- Facilidade para iniciantes
- 78/100
- Tipo de issue
- Documentação
- Clareza
- Claramente especificada
- Status de atividade
- Ativa
- Stack de tecnologia
- node.js, typescript
- Domínio
- documentation
Direção de pesquisa
A mudança vai para a fonte da documentação por trás de https://viteplus.dev/guide/troubleshooting#slow-config-loading-caused-by-heavy-plugins (uma página dentro da documentação do guia, provavelmente docs/guide/troubleshooting.md). Leia a dica existente de lazyPlugins e depois reproduza com os dois arquivos de configuração no corpo da issue e vp fmt --check vite.config.ts para ver a diferença de 0.24s vs 0.60s. Concluído significa que a dica afirma que o import() lazy deve ter como alvo pacotes em vez de módulos locais, porque módulos locais são empacotados com a config junto com seus imports; opcionalmente mencione a alternativa configLoader: 'native'.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
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.
- Linguagem predominante
- Rust
- Estrelas
- 6.5k
- Forks
- 296
- Merge médio
- 1d 2h
- PRs com merge (30d)
- 227
Preparar o ambiente
Inicia o contêiner de desenvolvimento do projeto no navegador, com a sua própria conta do GitHub.
- Sem Dockerfile nem arquivo Docker Compose
- Sem modelo de pull request
- Ler o guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de voidzero-dev/vite-plus
-
pending triage
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 63/100
voidzero-dev/vite-plus#3235 ·
Mantenedores costumam responder em até 1 dia
-
Docker guide: the runtime stage needs libatomic1 for Node.js 25 and laterTalvez já em andamento @kshanxs assumiu há 4 dias. Abertadocumentation
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 84/100
voidzero-dev/vite-plus#3219 · 2 comentários · 1 reação ·
Mantenedores costumam responder em até 1 dia
-
pending triage
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
voidzero-dev/vite-plus#2882 · 2 comentários ·
Mantenedores costumam responder em até 1 dia
-
- P2: has workaround triage: unable to fix
Dificuldade 4/5 1-2 dias Facilidade para iniciantes 55/100
voidzero-dev/vite-plus#3264 · 1 comentário ·
Mantenedores costumam responder em até 1 dia
-
enhancement
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 53/100
voidzero-dev/vite-plus#3254 ·
Mantenedores costumam responder em até 1 dia
Todas as issues de voidzero-dev/vite-plus
Issues semelhantes
-
bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
swc-project/swc-next#1165 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 73/100
Alive24/shea-symphony#574 ·
-
bug tests Windows
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
Mantenedores costumam responder em até 1 dia
-
documentation good first issue help wanted
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 74/100
dev-five-git/devup-ui#879 ·
Mantenedores costumam responder em até 11 dias
-
bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 77/100
farion1231/cc-switch#9038 · 1 comentário ·
Mantenedores costumam responder em até 1 dia