solidjs / solidjs/solid-vite-plugin
Make ssr settings less strict
Nessuno ha ancora preso questa issue.
- Lingua principale
- TypeScript
- Stelle
- 520
- Fork
- 70
- Merge medio
- 23h 35m
- PR unite (30g)
- 39
Descrizione
I need to prerender certain pages in ssg mode, so some chunks should be trasnformed with ssr: true option.
However, this condition: https://github.com/solidjs/vite-plugin-solid/blob/master/src/index.ts#L377 requires in my plugin change option explicitly:
function setSSRMode(enable: boolean) {
if (enable) {
options.solidPluginOptionsRef.ssr = true
options.solidPluginOptionsRef.solid!.hydratable = false
} else {
options.solidPluginOptionsRef.ssr = _ssr
options.solidPluginOptionsRef.solid.hydratable = _hydratable
}
}
async function getEntryFragment(entry: NormalizedEntry) {
setSSRMode(true)
const ssrMod = await server.ssrLoadModule(entry.ssrEntry, { fixStacktrace: true })
setSSRMode(false)
if (ssrMod.render?.constructor !== Function) {
throw new Error(`SSG entry ${entry.ssrEntry} should provide 'render' export`)
}
const fragment = await ssrMod.render()
return fragment
}
I suggest something like:
const generate = options.ssr || isSsr ? 'ssr' : 'dom'
const hydratable = isSsr || options.ssr
solidOptions = {
generate,
hydratable
};
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Direzione di ricerca
Inizia da src/index.ts, intorno alla riga 377, dove l'opzione SSR è attualmente obbligatoria, e confronta questa condizione con le impostazioni proposte generate e hydratable. Traccia il modo in cui le opzioni del plugin Vite vengono applicate durante SSG e verifica che i chunk selezionati possano usare ssr: true senza richiedere la mutazione delle opzioni esterne.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- typescript, vite
- Ambito
- build-system, tooling
- Tipo di issue
- Funzionalità
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Stato di attività
- Ferma
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 42/100