solidjs / solidjs/solid-vite-plugin

Make ssr settings less strict

Offen
#64 3 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Vorherrschende Sprache
TypeScript
Sterne
520
Forks
70
Ø Merge
23 Std. 35 Min.
Gemergte PRs (30 T.)
39

Beschreibung

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
};

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne in src/index.ts um Zeile 377, wo die SSR-Option derzeit erforderlich ist, und vergleiche diese Bedingung mit den vorgeschlagenen Einstellungen für generate und hydratable. Verfolge, wie die Vite-Plugin-Optionen während SSG angewendet werden, und überprüfe, dass ausgewählte Chunks ssr: true verwenden können, ohne eine Mutation der externen Optionen zu erfordern.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
typescript, vite
Bereich
build-system, tooling
Issue-Typ
Feature
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
42/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.