diff --git a/src/compiler/compile/render_ssr/index.ts b/src/compiler/compile/render_ssr/index.ts index ad22869d32..d1fa219ad5 100644 --- a/src/compiler/compile/render_ssr/index.ts +++ b/src/compiler/compile/render_ssr/index.ts @@ -145,6 +145,8 @@ export default function ssr( main ].filter(Boolean); + remove_unused_import(component); + const js = b` ${css.code ? b` const #css = { @@ -185,3 +187,8 @@ function trim(nodes: TemplateNode[]) { return nodes.slice(start, end); } + +const unused_import = new Set(['svelte/transition']); +function remove_unused_import(component: Component) { + component.imports = component.imports.filter(decl => !unused_import.has(decl.source.value)); +} \ No newline at end of file diff --git a/test/js/samples/ssr-remove-transition-import/_config.js b/test/js/samples/ssr-remove-transition-import/_config.js new file mode 100644 index 0000000000..9e62c8d192 --- /dev/null +++ b/test/js/samples/ssr-remove-transition-import/_config.js @@ -0,0 +1,6 @@ +export default { + options: { + generate: 'ssr', + preserveComments: true + } +}; diff --git a/test/js/samples/ssr-remove-transition-import/expected.js b/test/js/samples/ssr-remove-transition-import/expected.js new file mode 100644 index 0000000000..41830e622a --- /dev/null +++ b/test/js/samples/ssr-remove-transition-import/expected.js @@ -0,0 +1,10 @@ +/* generated by Svelte vX.Y.Z */ +import { create_ssr_component, escape } from "svelte/internal"; + +let name = "world"; + +const Component = create_ssr_component(($$result, $$props, $$bindings, $$slots) => { + return `

Hello ${escape(name)}!

`; +}); + +export default Component; \ No newline at end of file diff --git a/test/js/samples/ssr-remove-transition-import/input.svelte b/test/js/samples/ssr-remove-transition-import/input.svelte new file mode 100644 index 0000000000..ed33beadc7 --- /dev/null +++ b/test/js/samples/ssr-remove-transition-import/input.svelte @@ -0,0 +1,6 @@ + + +

Hello {name}!

\ No newline at end of file