diff --git a/.changeset/moody-waves-think.md b/.changeset/moody-waves-think.md new file mode 100644 index 000000000000..9ae99f190972 --- /dev/null +++ b/.changeset/moody-waves-think.md @@ -0,0 +1,11 @@ +--- +'astro': major +--- + +Updates the Astro config loading flow to ignore processing locally-linked dependencies with Vite (e.g. `npm link`, in a monorepo, etc). Instead, they will be normally imported by the Node.js runtime the same way as other dependencies from `node_modules`. + +Previously, Astro would process locally-linked dependencies which were able to use Vite features like TypeScript when imported by the Astro config file. + +However, this caused confusion as integration authors may test against a package that worked locally, but not when published. This method also restricts using CJS-only dependencies because Vite requires the code to be ESM. Therefore, Astro's behaviour is now changed to ignore processing any type of dependencies by Vite. + +In most cases, make sure your locally-linked dependencies are built to JS before running the Astro project, and the config loading should work as before. diff --git a/packages/astro/src/core/config/vite-load.ts b/packages/astro/src/core/config/vite-load.ts index 8c953dde6d33..cf6e4a0b06ba 100644 --- a/packages/astro/src/core/config/vite-load.ts +++ b/packages/astro/src/core/config/vite-load.ts @@ -11,20 +11,7 @@ async function createViteServer(root: string, fs: typeof fsType): Promise