callstack / callstack/linaria

Support SolidStart & Astro

Open
#1,377 2 comments 4 reactions 0 assignees View on GitHub
bug report 🦗 needs: complete repro 🖥️ platform: ssr 🛠️
Dominant language
TypeScript
Stars
12.4k
Forks
413
PR merge metrics
No merged PRs in 30d

Description

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 #1096

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

- I got #1096 working with latest versions of `SolidJS` and `Astro`
- I got #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, https://github.com/callstack/linaria/pull/1096#issuecomment-1360750259

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

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.