Skip to content

Commit 725c502

Browse files
committed
Check Svelte version as well
1 parent 584ebbc commit 725c502

File tree

3 files changed

+18
-5
lines changed

3 files changed

+18
-5
lines changed

.changeset/chilled-tigers-flash.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@
22
'@sveltejs/vite-plugin-svelte': patch
33
---
44

5-
Skip Vite resolve workaround on Vite 4.1+
5+
Skip Vite resolve workaround on Vite 4.1+ or Svelte 4+

packages/vite-plugin-svelte/src/index.ts

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,13 @@
11
import fs from 'fs';
2-
import { HmrContext, ModuleNode, Plugin, ResolvedConfig, UserConfig, version as viteVersion } from 'vite';
2+
import { VERSION as svelteVersion } from 'svelte/compiler';
3+
import {
4+
HmrContext,
5+
ModuleNode,
6+
Plugin,
7+
ResolvedConfig,
8+
UserConfig,
9+
version as viteVersion
10+
} from 'vite';
311
// eslint-disable-next-line node/no-missing-import
412
import { isDepExcluded } from 'vitefu';
513
import { handleHotUpdate } from './handle-hot-update';
@@ -135,8 +143,13 @@ export function svelte(inlineOptions?: Partial<Options>): Plugin[] {
135143
}
136144
}
137145

138-
// TODO: remove this after bumping peerDep on Vite to at least 4.1
139-
if (viteVersion.startsWith('4.0') && ssr && importee === 'svelte') {
146+
// TODO: remove this after bumping peerDep on Vite to 4.1+ or Svelte to 4.0+
147+
if (
148+
viteVersion.startsWith('4.0') &&
149+
!svelteVersion.startsWith('3') &&
150+
ssr &&
151+
importee === 'svelte'
152+
) {
140153
if (!resolvedSvelteSSR) {
141154
resolvedSvelteSSR = this.resolve('svelte/ssr', undefined, { skipSelf: true }).then(
142155
(svelteSSR) => {

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { VERSION } from 'svelte/compiler';
2-
const svelteVersion = parseVersion(VERSION);
2+
export const svelteVersion = parseVersion(VERSION);
33

44
export function parseVersion(version: string): number[] {
55
const segments = version.split('.', 3).map((s) => parseInt(s, 10));

0 commit comments

Comments
 (0)