diff --git a/.changeset/poor-tips-turn.md b/.changeset/poor-tips-turn.md new file mode 100644 index 000000000000..aeceb5dccfa2 --- /dev/null +++ b/.changeset/poor-tips-turn.md @@ -0,0 +1,12 @@ +--- +"@astrojs/vercel": patch +--- + +Better ignores for Vercel file-tracer + +The Vercel adapter has a file-tracer it uses to detect which files should be moved over to the dist folder. When its done it prints warnings for things that it detected that maybe should be moved. + +This change expands how we do ignores so that: + +- Ignores happen within dot folders like `.pnpm`. +- `@libsql/client` is ignored, a package we know is not bundled. diff --git a/packages/integrations/vercel/package.json b/packages/integrations/vercel/package.json index bb876d8c1d62..3a4c28ffcdd4 100644 --- a/packages/integrations/vercel/package.json +++ b/packages/integrations/vercel/package.json @@ -55,6 +55,7 @@ "@vercel/nft": "^0.24.3", "esbuild": "^0.19.6", "fast-glob": "^3.3.2", + "minimatch": "^9.0.3", "set-cookie-parser": "^2.6.0", "web-vitals": "^3.4.0" }, diff --git a/packages/integrations/vercel/src/lib/nft.ts b/packages/integrations/vercel/src/lib/nft.ts index 585a45e998dc..7ce2fa72541b 100644 --- a/packages/integrations/vercel/src/lib/nft.ts +++ b/packages/integrations/vercel/src/lib/nft.ts @@ -2,6 +2,14 @@ import type { AstroIntegrationLogger } from 'astro'; import { relative, relative as relativePath } from 'node:path'; import { fileURLToPath } from 'node:url'; import { copyFilesToFunction } from './fs.js'; +import { Minimatch } from 'minimatch'; + +const matchers = [ + // Never venture into OS folders + '/dev/**', + // libsql contains many native deps that are false-positives. + '**/@libsql/client/**/*' +].map(pattern => new Minimatch(pattern, { dot: true })); export async function copyDependenciesToFunction( { @@ -38,7 +46,14 @@ export async function copyDependenciesToFunction( base: fileURLToPath(base), // If you have a route of /dev this appears in source and NFT will try to // scan your local /dev :8 - ignore: ['/dev/**'], + ignore(path) { + for(const minimatch of matchers) { + if(minimatch.match(path)) { + return true; + } + } + return false; + }, cache, }); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3438ca898ba0..694e47b5c83e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -4738,6 +4738,9 @@ importers: fast-glob: specifier: ^3.3.2 version: 3.3.2 + minimatch: + specifier: ^9.0.3 + version: 9.0.3 set-cookie-parser: specifier: ^2.6.0 version: 2.6.0