Skip to content

Commit c931f0e

Browse files
authored
fix: ensure shared file is resolved properly in all situations (sveltejs#566)
using a relative import means it may be relatively imported from within a node module, which leads to wrong results fixes sveltejs#555
1 parent 32f9b17 commit c931f0e

File tree

1 file changed

+10
-6
lines changed
  • packages/repl/src/lib/workers/bundler

1 file changed

+10
-6
lines changed

packages/repl/src/lib/workers/bundler/index.ts

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -256,6 +256,8 @@ async function get_bundle(
256256
}
257257
}
258258

259+
if (importee === shared_file) return importee;
260+
259261
// importing from another file in REPL
260262
if (local_files_lookup.has(importee) && (!importer || local_files_lookup.has(importer)))
261263
return importee;
@@ -394,7 +396,7 @@ async function get_bundle(
394396
result.js.code +=
395397
'\n\n' +
396398
`
397-
import { styles as $$_styles } from './__shared.js';
399+
import { styles as $$_styles } from '${shared_file}';
398400
const $$__style = document.createElement('style');
399401
$$__style.textContent = ${JSON.stringify(result.css.code)};
400402
document.head.append($$__style);
@@ -476,6 +478,8 @@ async function get_bundle(
476478

477479
export type BundleResult = ReturnType<typeof bundle>;
478480

481+
const shared_file = '$$__shared__.js';
482+
479483
async function bundle({
480484
uid,
481485
files,
@@ -500,7 +504,7 @@ async function bundle({
500504
version.split('.')[0] >= '5'
501505
? `
502506
import { unmount as u } from 'svelte';
503-
import { styles } from './__shared.js';
507+
import { styles } from '${shared_file}';
504508
export { mount, untrack } from 'svelte';
505509
export {default as App} from './App.svelte';
506510
export function unmount(component) {
@@ -509,7 +513,7 @@ async function bundle({
509513
}
510514
`
511515
: `
512-
import { styles } from './__shared.js';
516+
import { styles } from '${shared_file}';
513517
export {default as App} from './App.svelte';
514518
export function mount(component, options) {
515519
return new component(options);
@@ -525,10 +529,10 @@ async function bundle({
525529
text: true
526530
});
527531

528-
lookup.set('./__shared.js', {
532+
lookup.set(shared_file, {
529533
type: 'file',
530-
name: '__shared.js',
531-
basename: '__shared.js',
534+
name: shared_file,
535+
basename: shared_file,
532536
contents: `
533537
export let styles = [];
534538
`,

0 commit comments

Comments
 (0)