Skip to content

Support SolidStart & Astro #1377

@wakaztahir

Description

@wakaztahir

I created a fork of linaria with a different name "xqp" I want to use it in my project which uses SolidJS

I know that Linaria works with SolidJS & SolidJS with server side streaming, However that's not enough

  • Linaria doesn't work with SolidStart & probably with updated Astro, because they use server side streaming, They extract HTML from components and strip javascript which is delivered separately as you might know i.e Islands Architecture

  • This pull request is open and hasn't been merged into main feat(solid): initial draft implementation #1096

So I set out to solve these issues in my own fork and did these things

  • I got feat(solid): initial draft implementation #1096 working with latest versions of SolidJS and Astro
  • I got feat(solid): initial draft implementation #1096 working with latest SolidJS and Astro versions
  • I also managed to make SolidJS work with server side rendering with babel-preset-solid with SSR options ["babel-preset-solid", { generate : "ssr", hydratable : true }]
  • I also had to add babel-preset-solid into transform options presets, So I had to provide transform options object parameter in vite plugin options and then to transform services and get the object and put it in transform options
  • I also had to exclude extensions which were empty, so had to add extension != "" This is because /@solid-refresh was going inside readFileAsync and cause File Not found

Then instead of merging this into main, I merged main into this branch, I made it work after some effort, I could probably do it all again and merge this pull request back into main and create it here but I think it would be ignored since the above pull request has been ignored

Currently I am encountering issues like import.meta.hot cannot be used outside a module, which is being put in by solid plugin, My best guess is these must be evaluated and babel is not evaluating them, I have turned on softErrors for this to work for now as traversing the tree to remove these is hard.
Also reactivity doesn't work when using linaria with solid, don't know why which is a big issue, #1096 (comment)

My Request is that These issues should be fixed and SolidStart & Astro should be supported with server side rendering without a single issue

Here's my build commit https://github.com/Qinetik/xqp/tree/db3ff2e924d2c7815402836b275fd1fac1b2da56

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions