From 5e4c6298243fe1c8b3fda85042d38df77f63a4a7 Mon Sep 17 00:00:00 2001 From: Black1358 <122863429+Black1358@users.noreply.github.com> Date: Fri, 16 May 2025 02:58:26 +0300 Subject: [PATCH 1/3] feat: externalDependencies configuration in adapter-node --- packages/adapter-node/index.d.ts | 1 + packages/adapter-node/index.js | 19 ++++++++++++------- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/packages/adapter-node/index.d.ts b/packages/adapter-node/index.d.ts index d32510e25186..26613f8d9403 100644 --- a/packages/adapter-node/index.d.ts +++ b/packages/adapter-node/index.d.ts @@ -7,6 +7,7 @@ declare global { interface AdapterOptions { out?: string; + externalDependencies?: string[] | 'auto'; precompress?: boolean; envPrefix?: string; } diff --git a/packages/adapter-node/index.js b/packages/adapter-node/index.js index 9b0b3158ab82..cbaca9a824e2 100644 --- a/packages/adapter-node/index.js +++ b/packages/adapter-node/index.js @@ -9,7 +9,7 @@ const files = fileURLToPath(new URL('./files', import.meta.url).href); /** @type {import('./index.js').default} */ export default function (opts = {}) { - const { out = 'build', precompress = true, envPrefix = '' } = opts; + const { out = 'build', precompress = true, envPrefix = '', externalDependencies = 'auto' } = opts; return { name: '@sveltejs/adapter-node', @@ -46,7 +46,14 @@ export default function (opts = {}) { ].join('\n\n') ); - const pkg = JSON.parse(readFileSync('package.json', 'utf8')); + var external; + + if (externalDependencies === 'auto') { + const pkg = JSON.parse(readFileSync('package.json', 'utf8')); + external = Object.keys(pkg.dependencies || {}); + } else { + external = externalDependencies; + } // we bundle the Vite output so that deployments only need // their production dependencies. Anything in devDependencies @@ -56,10 +63,8 @@ export default function (opts = {}) { index: `${tmp}/index.js`, manifest: `${tmp}/manifest.js` }, - external: [ - // dependencies could have deep exports, so we need a regex - ...Object.keys(pkg.dependencies || {}).map((d) => new RegExp(`^${d}(\\/.*)?$`)) - ], + // dependencies could have deep exports, so we need a regex + external: external.map((d) => new RegExp(`^${d}(\\/.*)?$`)), plugins: [ nodeResolve({ preferBuiltins: true, @@ -95,4 +100,4 @@ export default function (opts = {}) { read: () => true } }; -} +} \ No newline at end of file From bc55b0e0328b10ef1e2da1f75910aded84f5ede4 Mon Sep 17 00:00:00 2001 From: Vladislav Logvin <122863429+Black1358@users.noreply.github.com> Date: Fri, 16 May 2025 03:11:28 +0300 Subject: [PATCH 2/3] fmt --- packages/adapter-node/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/adapter-node/index.js b/packages/adapter-node/index.js index cbaca9a824e2..702d17fccce2 100644 --- a/packages/adapter-node/index.js +++ b/packages/adapter-node/index.js @@ -100,4 +100,4 @@ export default function (opts = {}) { read: () => true } }; -} \ No newline at end of file +} From d42607b0ae8682352ce4996f791b80e6cfd69fa4 Mon Sep 17 00:00:00 2001 From: Vladislav Logvin <122863429+Black1358@users.noreply.github.com> Date: Fri, 16 May 2025 03:15:58 +0300 Subject: [PATCH 3/3] var -> let --- packages/adapter-node/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/adapter-node/index.js b/packages/adapter-node/index.js index 702d17fccce2..0ae9269abb98 100644 --- a/packages/adapter-node/index.js +++ b/packages/adapter-node/index.js @@ -46,7 +46,7 @@ export default function (opts = {}) { ].join('\n\n') ); - var external; + let external; if (externalDependencies === 'auto') { const pkg = JSON.parse(readFileSync('package.json', 'utf8'));