diff --git a/packages/svelte/package.json b/packages/svelte/package.json index 90f6e6521..3335fec97 100644 --- a/packages/svelte/package.json +++ b/packages/svelte/package.json @@ -25,7 +25,6 @@ "mkdirp": "^0.5.1", "modular-css-core": "file:../core", "resolve-from": "^4.0.0", - "rollup-pluginutils": "^2.3.0", - "slash": "^2.0.0" + "rollup-pluginutils": "^2.3.0" } } diff --git a/packages/svelte/src/markup.js b/packages/svelte/src/markup.js index 05d912a88..2ddab289b 100644 --- a/packages/svelte/src/markup.js +++ b/packages/svelte/src/markup.js @@ -4,7 +4,6 @@ const path = require("path"); const resolve = require("resolve-from"); const dedent = require("dedent"); -const slash = require("slash"); const styleRegex = /([\S\s]*?)<\/style>/im; const scriptRegex = /([\S\s]*?)<\/script>/im; @@ -51,7 +50,12 @@ async function extractLink({ processor, content, filename, link }) { // This looks weird, but it's to support multiple types of quotation marks const href = link[1] || link[2] || link[3]; - const external = slash(resolve(path.dirname(filename), href)); + const external = resolve(path.dirname(filename), href); + + // Remove any files that've already been encountered, they should be re-processed + if(external in processor.files) { + [ ...processor.dependents(external), external ].forEach((file) => processor.remove(file)); + } // Remove the element from the component to avoid double-loading content = content.replace(link[0], ""); diff --git a/packages/svelte/test/__snapshots__/svelte.test.js.snap b/packages/svelte/test/__snapshots__/svelte.test.js.snap index ad21fd6d0..b5e8602ac 100644 --- a/packages/svelte/test/__snapshots__/svelte.test.js.snap +++ b/packages/svelte/test/__snapshots__/svelte.test.js.snap @@ -292,4 +292,32 @@ exports[`/svelte.js should ignore files without