Skip to content

Commit dfb95b6

Browse files
committed
fix: expand local caching for compiled css to dev
1 parent c625f67 commit dfb95b6

File tree

4 files changed

+16
-13
lines changed

4 files changed

+16
-13
lines changed

packages/e2e-tests/kit-node/__tests__/kit.spec.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ describe('kit-node', () => {
9898

9999
it('should load dynamic import with css', async () => {
100100
expect(await getText('#dynamic-imported')).toBe("i'm blue");
101-
expect(await getColor('#css-transform')).toBe('blue');
101+
expect(await getColor('#dynamic-imported')).toBe('blue');
102102
});
103103

104104
it('should respect transforms', async () => {
@@ -198,14 +198,14 @@ describe('kit-node', () => {
198198
it('should serve changes even after page reload', async () => {
199199
expect(await getColor('h1')).toBe('green');
200200
expect(await getText('#hmr-test2')).toBe('bar');
201+
expect(await getText('#dynamic-imported')).toBe("i'm blue");
202+
expect(await getColor('#dynamic-imported')).toBe('blue');
201203
await reloadPage();
202204
expect(await getColor('h1')).toBe('green');
203205
expect(await getText('#hmr-test2')).toBe('bar');
204-
});
205-
206-
it('should not have errors on reload', async () => {
207-
expect(getServerErrors(), 'error log of `vite dev` is not empty before reload').toEqual([]);
208-
await reloadPage();
206+
await page.waitForSelector('#dynamic-imported', { strict: true });
207+
expect(await getText('#dynamic-imported')).toBe("i'm blue");
208+
expect(await getColor('#dynamic-imported')).toBe('blue');
209209
expect(getServerErrors(), 'error log of `vite dev` is not empty after reload').toEqual([]);
210210
});
211211

packages/e2e-tests/kit-node/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33
"version": "0.0.0",
44
"private": true,
55
"scripts": {
6-
"dev": "vite dev",
7-
"build": "vite build",
6+
"dev": "svelte-kit sync && vite dev",
7+
"build": "svelte-kit sync && vite build",
88
"preview": "vite preview",
99
"prepare": "svelte-kit sync || echo ''",
1010
"sync": "svelte-kit sync || echo ''",
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<div id="dynamic-imported">i'm blue</div>
22

33
<style lang="postcss">
4-
#dynamic-import {
4+
#dynamic-imported {
55
color: blue;
66
}
77
</style>

packages/vite-plugin-svelte/src/plugins/load-compiled-css.js

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,17 @@ const filter = { id: SVELTE_VIRTUAL_STYLE_ID_REGEX };
88
* @returns {import('vite').Plugin}
99
*/
1010
export function loadCompiledCss(api) {
11-
let isBuildWatch = false;
11+
let useLocalCache = false;
12+
1213
/** @type{Map<string,any>} */
1314
const buildWatchCssCache = new Map();
1415
return {
1516
name: 'vite-plugin-svelte:load-compiled-css',
1617

1718
configResolved(c) {
18-
isBuildWatch = !!c.build?.watch;
19+
const isDev = c.command === 'serve';
20+
const isBuildWatch = !!c.build?.watch;
21+
useLocalCache = isDev || isBuildWatch;
1922
},
2023

2124
resolveId: {
@@ -34,9 +37,9 @@ export function loadCompiledCss(api) {
3437
return;
3538
}
3639
let cachedCss = this.getModuleInfo(svelteRequest.filename)?.meta.svelte?.css;
37-
// in build --watch getModuleInfo only returns changed module data.
40+
// in `build --watch` or dev ssr reloads getModuleInfo only returns changed module data.
3841
// To ensure virtual css is loaded unchanged, we cache it here separately
39-
if (isBuildWatch) {
42+
if (useLocalCache) {
4043
if (cachedCss) {
4144
buildWatchCssCache.set(svelteRequest.filename, cachedCss);
4245
} else {

0 commit comments

Comments
 (0)