From ae1f4db5093ec1d394b77174a9674eccf1dfbfab Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Wed, 20 Apr 2022 17:43:27 -0400 Subject: [PATCH] ensure _redirects parent exists --- .changeset/lucky-glasses-sell.md | 5 +++++ packages/adapter-netlify/index.js | 5 +++-- 2 files changed, 8 insertions(+), 2 deletions(-) create mode 100644 .changeset/lucky-glasses-sell.md diff --git a/.changeset/lucky-glasses-sell.md b/.changeset/lucky-glasses-sell.md new file mode 100644 index 000000000000..42b2f76974d1 --- /dev/null +++ b/.changeset/lucky-glasses-sell.md @@ -0,0 +1,5 @@ +--- +'@sveltejs/adapter-netlify': patch +--- + +Ensure build directory exists before writing \_redirects diff --git a/packages/adapter-netlify/index.js b/packages/adapter-netlify/index.js index 7d72a12acc5b..eaee54986bb1 100644 --- a/packages/adapter-netlify/index.js +++ b/packages/adapter-netlify/index.js @@ -1,5 +1,5 @@ import { appendFileSync, existsSync, readFileSync, writeFileSync } from 'fs'; -import { join, resolve, posix } from 'path'; +import { dirname, join, resolve, posix } from 'path'; import { fileURLToPath } from 'url'; import glob from 'tiny-glob/sync.js'; import esbuild from 'esbuild'; @@ -62,7 +62,7 @@ export default function ({ split = false, edge = edgeSetInEnvVar } = {}) { if (split) { throw new Error('Cannot use `split: true` alongside `edge: true`'); } - + await generate_edge_functions({ builder }); } else { await generate_lambda_functions({ builder, esm, split, publish }); @@ -234,6 +234,7 @@ function generate_lambda_functions({ builder, publish, split, esm }) { if (existsSync('_redirects')) { builder.copy('_redirects', redirect_file); } + builder.mkdirp(dirname(redirect_file)); appendFileSync(redirect_file, `\n\n${redirects.join('\n')}`); }