lars
Explore posts from serversBetter stacktraces when using SolidJS via a library?
the pic from above is the expanded stacktrace 🥲
could it be an issue with the safari devtools on mac? i can't confirm for sure, but i believe i'm seeing a complete stacktrace for the same error on my windows machine
6 replies
Better stacktraces when using SolidJS via a library?
basically every error within the library throws with this same stacktrace, so the stacktrace becomes unusable in helping to pinpoint where the error is.
handleError
is somewhere within solidjs' internal ownership-related code
getting the source .ts file would be the ideal for sure, but even getting a stacktrace of the built js would be a massive improvement6 replies
SolidJS UI library + Astro
well shit, turns out it wasn't working at all. the issue happens when importing the UI library (that is using kobalte) in a
.ts
file that is then imported by a .astro
file. any imports directly in the .astro
file work fine
even if all the exports from the UI library are hardcoded to point to the .jsx
output, it still errors with No matching export in "../../node_modules/.pnpm/[email protected]/node_modules/solid-js/web/dist/server.js" for import "effect"
it's strange how the file type has an effect on how the import behaves. you wouldn't happen to know anything about this @Brendonovich? i'll likely end up refactoring the ui library to export the unbuilt TS, but it's a shame that it's such a pain to get a library working if you want the build process encapsulated within the lib30 replies
SolidJS UI library + Astro
@Brendonovich @bigmistqke finally got it working, but anticlimactically, i can't track down what actually got it working. i have an earlier commit where i'm running the same configs, so i'm leaning towards something weird being stuck in the
dist
or node_modules
dirs
the final working config (package.json
in the ui lib):
tsup config:
astro config is completely stock (no noExternal
or anything like that)
thanks again for the help 🙏30 replies
SolidJS UI library + Astro
damn it just does not want to work. i think i'll clone down your repo at your astro commit and gradually replace it with my own code 🥲
at least i now know that it should be possible, unless this is some regressive change in one of my deps. i'm sure you've saved me a ton of time here either way, so thank you
30 replies
SolidJS UI library + Astro
were you using the same
package.json
before converting to solid start? I get an error when importing the ui lib
if i then add a condition for import
, it goes away but i then get the original error message The requested module 'solid-js/web' blah blah
30 replies
SolidJS UI library + Astro
Yeah, but it’s part of a closed source monorepo for now. Are you thinking of instead eg linking the unbuilt TS via pnpm? I tried that thinking it’d for sure resolve the issue, but weirdly enough I still encountered the exports error
30 replies
SolidJS UI library + Astro
my vague impression is that tsup-preset-solid is the most up to date way to set up UI libraries with solid right now. the config I ran looked like this:
this automatically writes these properties to the
package.json
(including a condition for solid
- but it'd still end up with the export error above)
30 replies
SolidJS UI library + Astro
i came across that bit of info as well, but it unfortunately didn't seem to have an effect with my setup
what i'm a little afraid of is that adding
@kobalte/core
to noExternal
might only get things working if you were using astro + solid + kobalte all in a single Astro app30 replies
Manually mounting SolidJS component within HTML component via `render`
pt2
The
parseTemplate
fn is where the real magic happens. It compiles the template with Handlebars (a templating engine), and then afterwards SolidJS components are mounted into the compiled HTML
The issue I'm facing is that the manually mounted SolidJS components don't seem to be "wired up" correctly. Their onCleanup
hooks aren't being called.
Is there a correct way to insert the SolidJS components in the parsed HTML rather than just calling render()
?3 replies