web-infra-dev / web-infra-dev/rslib
[Bug]: Unable to bundle types from dependency while importing from root but works for sub-path modules
@Timeless0911 is already working on this.
Since Nov 12, 2024.
- Dominant language
- TypeScript
- Stars
- 1k
- Forks
- 67
- Avg merge
- 6h 9m
- Merged PRs (30d)
- 57
Description
Version
System:
OS: macOS 15.0
CPU: (10) arm64 Apple M1 Pro
Memory: 151.06 MB / 32.00 GB
Shell: 5.9 - /bin/zsh
Browsers:
Safari: 18.0
npmPackages:
@rslib/core: ^0.0.16 => 0.0.16
Details
There is a minimal repro slimmed from a package using Rsbuild.
src/index.ts
import type { RsbuildPluginAPI as Foo } from 'my-kit';
import type { RsbuildPluginAPI as Bar } from 'my-kit/plugin';
export type { Foo, Bar };
While all the things is actually exported from ./node_modules/my-kit/dist-types/types/plugin.d.ts.
node_modules/my-kit/dist-types
├── index.d.ts
└── types
├── index.d.ts
└── plugin.d.ts
The weird thing is if I import types from my-kit (./node_modules/my-kit/dist-types/index.d.ts). It will come into being a relative path import statement from ./types (but there no dist/types/index.d.ts or somethings like it in there).
dist/index.d.ts (actual)
import { RsbuildPluginAPI as Foo } from './types';
export declare type Bar = {};
export { Foo }
export { }
But I expected it should be bundle into the dist/index.d.ts just like if I import the some type from the sub-path module my-kit/plugin (./node_modules/my-kit/dist-types/types/plugin.d.ts). It would be seems like:
dist/index.d.ts (expected)
export declare type Foo = {};
export declare type Bar = {};
export { Foo, Foo }
Reproduce link
https://github.com/Asuka109/repro-rslib-relative-path-typings
Reproduce Steps
pnpm installpnpm build
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.