Skip to content

Commit 4c1627a

Browse files
authored
fix: respect custom resolve.mainFields config when adding svelte (#582)
1 parent b0f69c4 commit 4c1627a

File tree

3 files changed

+19
-4
lines changed

3 files changed

+19
-4
lines changed

.changeset/smooth-bottles-reflect.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@sveltejs/vite-plugin-svelte': patch
3+
---
4+
5+
respect custom resolve.mainFields config when adding svelte

packages/vite-plugin-svelte/src/utils/constants.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
const VITE_RESOLVE_MAIN_FIELDS = ['module', 'jsnext:main', 'jsnext'];
1+
export const VITE_RESOLVE_MAIN_FIELDS = ['module', 'jsnext:main', 'jsnext'];
22

3-
export const SVELTE_RESOLVE_MAIN_FIELDS = ['svelte', ...VITE_RESOLVE_MAIN_FIELDS];
3+
export const SVELTE_RESOLVE_MAIN_FIELDS = ['svelte'];
44

55
export const SVELTE_IMPORTS = [
66
'svelte/animate',

packages/vite-plugin-svelte/src/utils/options.ts

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@ import {
66
SVELTE_EXPORT_CONDITIONS,
77
SVELTE_HMR_IMPORTS,
88
SVELTE_IMPORTS,
9-
SVELTE_RESOLVE_MAIN_FIELDS
9+
SVELTE_RESOLVE_MAIN_FIELDS,
10+
VITE_RESOLVE_MAIN_FIELDS
1011
} from './constants';
1112
// eslint-disable-next-line node/no-missing-import
1213
import type { CompileOptions, Warning } from 'svelte/types/compiler/interfaces';
@@ -324,9 +325,18 @@ export async function buildExtraViteConfig(
324325
options: PreResolvedOptions,
325326
config: UserConfig
326327
): Promise<Partial<UserConfig>> {
328+
// make sure we only readd vite default mainFields when no other plugin has changed the config already
329+
// see https://github.com/sveltejs/vite-plugin-svelte/issues/581
330+
if (!config.resolve) {
331+
config.resolve = {};
332+
}
333+
config.resolve.mainFields = [
334+
...SVELTE_RESOLVE_MAIN_FIELDS,
335+
...(config.resolve.mainFields ?? VITE_RESOLVE_MAIN_FIELDS)
336+
];
337+
327338
const extraViteConfig: Partial<UserConfig> = {
328339
resolve: {
329-
mainFields: [...SVELTE_RESOLVE_MAIN_FIELDS],
330340
dedupe: [...SVELTE_IMPORTS, ...SVELTE_HMR_IMPORTS],
331341
conditions: [...SVELTE_EXPORT_CONDITIONS]
332342
}

0 commit comments

Comments
 (0)