Open aa-ndrej opened 2 months ago
Running into the same problem - was able to workaround by moving the built (e.g. with astro, ./dist/*
) directory subtree into a separate parent directory that doesn't include package.json
or node_modules
. It appears that even though wrangler is being told to just serve the contents of DIRECTORY
it still looks into the parents and complains/fails about things it finds in node_modules
that are incompatible with the CF runtime.
Which Cloudflare product(s) does this pertain to?
Pages, Wrangler core
What version(s) of the tool(s) are you using?
3.55.0 [wrangler], 4.8.3 [astro], 10.2.6 [@astrojs/cloudflare]
What version of Node are you using?
20.11.1
What operating system and version are you using?
macOS Sonoma 14.2.1
Describe the Bug
Steps to reproduce
npm create cloudflare@latest cloudflare-astro -- --framework=astro
.astro.config.mjs
:// https://astro.build/config export default defineConfig({ output: "hybrid", adapter: cloudflare({ imageService: "compile", platformProxy: { enabled: true } }) });
src/assets/image.jpg
.npm preview
.This should build the project and then execute
wrangler pages dev
.Expected behavior
There should be no errors, as everything works as expected when deploying to Cloudflare Pages.
Observed behavior
wrangler pages dev
fails with the errors below.node_modules/detect-libc
is a dependency of thesharp
library to optimize the images on build. Withoutput: "hybrid"
andimageService: "compile"
the images are only optimaized for the static pages at build time and thesharp
library is never used in SSR.Please provide a link to a minimal reproduction
No response
Please provide any relevant error logs
✘ [ERROR] Could not resolve "child_process"
The package "child_process" wasn't found on the file system but is built into node. Add "node_compat = true" to your wrangler.toml file and make sure to prefix the module name with "node:" to enable Node.js compatibility.
✘ [ERROR] Could not resolve "fs"
The package "fs" wasn't found on the file system but is built into node. Add "node_compat = true" to your wrangler.toml file and make sure to prefix the module name with "node:" to enable Node.js compatibility.