From 10565759ed37058835ee9b7e3222df67435c95a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9C=A8=E6=9D=89?= Date: Tue, 30 Nov 2021 19:54:10 +0800 Subject: [PATCH] fix: Preserve usused imports when esbuild transforms ts in svelte (#476) --- src/esbuild/svelte.ts | 5 +++++ test/index.test.ts | 18 ++++++++++++++---- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/src/esbuild/svelte.ts b/src/esbuild/svelte.ts index 9a7dd0c5..c900fbc2 100644 --- a/src/esbuild/svelte.ts +++ b/src/esbuild/svelte.ts @@ -67,6 +67,11 @@ export const sveltePlugin = ({ sourcefile: args.path, loader: 'ts', sourcemap: true, + tsconfigRaw: { + compilerOptions: { + importsNotUsedAsValues: 'preserve', + }, + }, }) return { code, diff --git a/test/index.test.ts b/test/index.test.ts index 56dbc924..3e30cc85 100644 --- a/test/index.test.ts +++ b/test/index.test.ts @@ -429,20 +429,30 @@ test('bundle svelte without styles', async (t) => { }) test('svelte: typescript support', async (t) => { - const { outFiles } = await run(t.title, { + const { outFiles, output } = await run(t.title, { 'input.ts': `import App from './App.svelte' export { App } `, 'App.svelte': ` - {msg} + {say} `, + 'Component.svelte': ` + + + {name} + `, }) t.deepEqual(outFiles, ['input.js']) + t.assert(output.includes('// Component.svelte')) }) test('onSuccess', async (t) => { @@ -643,7 +653,7 @@ test('multiple entry with the same base name', async (t) => { t.deepEqual(outFiles, ['bar/input.js', 'input.js']) }) -test('windows backslash in entry', async (t) => { +test('windows: backslash in entry', async (t) => { const { outFiles } = await run( t.title, { 'src/input.ts': `export const foo = 1` },