withastro / adapters

Home for Astro's core maintained adapters
69 stars 41 forks source link

Cloudflare Adapter: Build fails while finalizing server assets #440

Open MehrdadKhnzd opened 3 days ago

MehrdadKhnzd commented 3 days ago

Astro Info

Astro                    v4.16.10
Node                     v20.18.0
System                   Linux (x64)
Package Manager          bun
Output                   server
Adapter                  @astrojs/cloudflare
Integrations             unocss
                         @astrojs/solid-js

Describe the Bug

This is a new project I'm building for the first time. After building the files and while finalizing server assets and Rearranging server assets... it throws an error:

ENOENT: no such file or directory, open '/<path>/dist/_worker.js/_astro/Page.O6jLfjx6.js'
 Location:
    /home/mehrdad/avid-ai/node_modules/@astrojs/cloudflare/dist/utils/cloudflare-module-loader.js:156:34

It seems that the file that it's looking for is under /dist/_astro not /dist/_worker.js/_astro - there is no _astro folder inside _worker.js and I don't understand why this happens, either the build step in vite puts the stuff in the wrong place:

building client (vite) 
04:04:32 [vite] ✓ 26 modules transformed.
04:04:32 [vite] dist/_astro/client.DP_eMiOr.js    0.99 kB │ gzip:  0.60 kB
04:04:32 [vite] dist/_astro/Page.rkUIeSSz.js     12.82 kB │ gzip:  4.30 kB
04:04:32 [vite] dist/_astro/store.B9wgTa3t.js    19.76 kB │ gzip:  7.73 kB
04:04:32 [vite] dist/_astro/Page.O6jLfjx6.js     72.71 kB │ gzip: 21.60 kB
04:04:32 [vite] ✓ built in 1.08s

Or there's an issue with afterBuildCompleted.

Thanks for your help, please let me know what you think.

What's the expected result?

It should build the project normally.

Link to Minimal Reproducible Example

I couldn't recreate it using a minimal reproduction, but I can try again to do so if the error is not recognizable.

Participation

alexanderniebuhr commented 3 days ago

Thanks for the report. I know we had such issue with an old version of the adapter, but the newest release should not have it anymore. Can you please try to add a minimal reproduction, which shows the errors on latest versions?

MehrdadKhnzd commented 3 days ago

@alexanderniebuhr I found the error. It's because I have imported a text file in my TSX file:

import file from '../files/text.txt'

This is a minimal repro. If you comment out the import in Page.tsx, it will build successfully. Otherwise, it will fail. https://stackblitz.com/~/github.com/MehrdadKhnzd/astro-cloudflare-text-import-bug-repro

On a more minimal reproduction, I wasn't able to recreate this error by importing text, so I'm not sure what all the parameters that affect it are: https://stackblitz.com/edit/github-7vggel?file=src%2Fpages%2F_%2FPage.tsx

Thanks!

alexanderniebuhr commented 2 days ago

Thanks for the reproductions, I'll try to figure out the root cause.