From 78e9c17be3054466142a003c17033294b22bb126 Mon Sep 17 00:00:00 2001 From: halfnelson Date: Fri, 29 Oct 2021 20:32:56 +1000 Subject: [PATCH] fix(webpack): map 'svelte' to 'svelte/internal' to avoid forced ssr (#9627) --- packages/webpack5/src/configuration/svelte.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/webpack5/src/configuration/svelte.ts b/packages/webpack5/src/configuration/svelte.ts index e5feea09e..4d4f239e0 100644 --- a/packages/webpack5/src/configuration/svelte.ts +++ b/packages/webpack5/src/configuration/svelte.ts @@ -1,4 +1,3 @@ -import { merge } from 'webpack-merge'; import Config from 'webpack-chain'; import { getProjectFilePath } from '../helpers/project'; @@ -19,6 +18,10 @@ export default function (config: Config, env: IWebpackEnv = _env): Config { // electron-main sneaks us past the target == 'node' check and gets us HMR config.target('electron-main'); + // turns out this isn't enough now. svelte uses "node" of which "electron-main" is a subset in its export map forcing imports + // for 'svelte' to 'ssr.mjs'. We define an alias here to force it back. + config.resolve.alias.set('svelte$', 'svelte/internal'); + // svelte-hmr still references tns-core-modules, so we shim it here for compat. config.resolve.alias.set('tns-core-modules', '@nativescript/core');