Open giacomorebonato opened 1 year ago
I'm having the same issue. It seems that the vite.ssrLoadModule
(https://github.com/matthewp/astro-fastify/blob/main/lib/index.js#LL53C42-L53C55) is not respecting the relative path. If you want to try to load the files from the root it works.
Like if you have the api located in: ./api/index.ts
try to load the rest of the paths as import { createApiContext } from './api/api-context.js'
anyway is not a good solution, i know
the kinda solution is to put main.ts (the file where defineRoutes is called) in the project root. This automatically makes your imports "from root".
@smnbbrv Hi! I'd like to use your tip, but the problem seems to resurface as soon as a relative import is used, so it is hard to modularize any serious fastify related code used from this entry point. What would really need to be fixed regarding the mentioned ssrLoadModule thing (if @tinchoz49's assumption in https://github.com/matthewp/astro-fastify/issues/21#issuecomment-1574313765 is correct)? I'd love to help.
+1 for a fix for this. Such a great dev experience having HMR!
I don't understand this issue. Are you all passing a URL to entry
like in the example? If you're passing ./entry.ts
or something then I would expect it not to work.
I've attached a minimal recreation for you here. But basically to recreate the issue I:
astro
(npm create astro@latest
)astro-fastify
as per readme (everything works fine up to this point)./api/lib
and create a file todo.ts.Import
file from 3 inside ./api/index.ts
14:42:42 [ERROR] [content] Failed to load url ./lib/todos (resolved id: ./lib/todos). Does the file exist?
Archive.zip
To use the zip file, just npm install
Thanks for the reproduction! I'm not sure what would cause this, but I think I have a good idea to fix it either way.
I've looked into this a bit but haven't been able to figure it out yet. Inside Vite it seems to resolving these modules without providing the parent module to resolve relative, and I'm not sure why it's doing that. Will keep you updated.
thank you @matthewp !
I am unable to find any related issue in the vite repo, and while trying to create a minimal reproduction using createViteServer
as described in vite docs the imports work fine. stackblitz
Could this be related to astro's vite config or at astro level? or can someone link me to an existing issue? or should i file one in astro and see where that goes?
Trying to move to astro at work but this import issue is the only blocker for a week.
thanks for this adapter & astro tho :)
The following is the code my entry points to:
All the local imports fail with:
Do you know what's happening?