sveltejs / language-tools

The Svelte Language Server, and official extensions which use it
MIT License
1.24k stars 198 forks source link

d.ts generation failed because of `$$__sveltets_2_IsomorphicComponent` naming conflict #2536

Open walmartwarlord opened 2 weeks ago

walmartwarlord commented 2 weeks ago

Describe the bug

Hello, is this not possible in Svelte? Seems like the compiler is having a meltdown

import _Button from './Button.svelte';
import ButtonLink from './ButtonLink.svelte';

const Button = Object.assign(_Button, {
    Link: ButtonLink,
});

export { UserButton };

Im getting this d.ts error when building in library mode

> svelte-clerk@0.1.10 package
> svelte-kit sync && svelte-package && publint

d.ts type declaration files for the following files were likely not generated due to the following errors:
/tmp/my-lib/src/lib/components/Button/index.ts
  - Exported variable 'Button' has or is using name '$$__sveltets_2_IsomorphicComponent' from external module "/tmp/my-lib/src/lib/components/Button/Button.svelte" but cannot be named.
  - Exported variable 'Button' has or is using name '$$__sveltets_2_IsomorphicComponent' from external module "/tmp/my-lib/src/lib/components/Button/ButtonLink.svelte" but cannot be named
src/lib -> dist
@sveltejs/package found the following issues while packaging your library:
You are using SvelteKit-specific imports in your code, but you have not declared a dependency on `@sveltejs/kit` in your `package.json`. Add it to your `dependencies` or `peerDependencies`.

Sample usage in Svelte:

<script>
import { Button } from 'my-lib'
</script>

<Button>
    <Button.Link href="/somewhere" />
</Button>

Reproduction

  1. Create a SvelteKit app in library mode
  2. Re-export a component like:
import Button from './Button.svelte';

export const RenamedButton = Button;
  1. Run npm run build and see the console output error about d.ts

Logs

No response

System Info

System:
    OS: macOS 14.5
    CPU: (10) arm64 Apple M1 Pro
    Memory: 110.84 MB / 16.00 GB
    Shell: 5.9 - /bin/zsh
  Binaries:
    Node: 20.17.0 - ~/.local/state/fnm_multishells/40146_1728685539617/bin/node
    npm: 10.8.2 - ~/.local/state/fnm_multishells/40146_1728685539617/bin/npm
    pnpm: 9.12.0 - /opt/homebrew/bin/pnpm
    bun: 1.1.30 - ~/.bun/bin/bun
  Browsers:
    Chrome: 129.0.6668.100
    Safari: 17.5
  npmPackages:
    svelte: ^5.0.0-next.262 => 5.0.0-next.262

Severity

annoyance

dummdidumm commented 2 weeks ago

Can you provide the code for button and buttonlink?

Rock1raw commented 1 day ago

Describe the bug

Hello, is this not possible in Svelte? Seems like the compiler is having a meltdown

import _Button from './Button.svelte';
import ButtonLink from './ButtonLink.svelte';

const Button = Object.assign(_Button, {
    Link: ButtonLink,
});

export { UserButton };

Im getting this d.ts error when building in library mode

> svelte-clerk@0.1.10 package
> svelte-kit sync && svelte-package && publint

d.ts type declaration files for the following files were likely not generated due to the following errors:
/tmp/my-lib/src/lib/components/Button/index.ts
  - Exported variable 'Button' has or is using name '$$__sveltets_2_IsomorphicComponent' from external module "/tmp/my-lib/src/lib/components/Button/Button.svelte" but cannot be named.
  - Exported variable 'Button' has or is using name '$$__sveltets_2_IsomorphicComponent' from external module "/tmp/my-lib/src/lib/components/Button/ButtonLink.svelte" but cannot be named
src/lib -> dist
@sveltejs/package found the following issues while packaging your library:
You are using SvelteKit-specific imports in your code, but you have not declared a dependency on `@sveltejs/kit` in your `package.json`. Add it to your `dependencies` or `peerDependencies`.

Sample usage in Svelte:

<script>
import { Button } from 'my-lib'
</script>

<Button>
    <Button.Link href="/somewhere" />
</Button>

Reproduction

  1. Create a SvelteKit app in library mode
  2. Re-export a component like:
import Button from './Button.svelte';

export const RenamedButton = Button;
  1. Run npm run build and see the console output error about d.ts

Logs

No response

System Info

System:
    OS: macOS 14.5
    CPU: (10) arm64 Apple M1 Pro
    Memory: 110.84 MB / 16.00 GB
    Shell: 5.9 - /bin/zsh
  Binaries:
    Node: 20.17.0 - ~/.local/state/fnm_multishells/40146_1728685539617/bin/node
    npm: 10.8.2 - ~/.local/state/fnm_multishells/40146_1728685539617/bin/npm
    pnpm: 9.12.0 - /opt/homebrew/bin/pnpm
    bun: 1.1.30 - ~/.bun/bin/bun
  Browsers:
    Chrome: 129.0.6668.100
    Safari: 17.5
  npmPackages:
    svelte: ^5.0.0-next.262 => 5.0.0-next.262

Severity

annoyance