You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
In ESM module we need to import files with extension, but there's no extension in the generated code.
And this causes resolution errors in consumer(api) package. (such as Module '"db-provider"' has no exported member 'ConnectionOptions'.).
I looked into the unbuild code and found out it always uses file name without the extension
My current workaround is to add .js extension by sed command.
"scripts": {
"stub-fix": "if [[ \"$OSTYPE\" == \"darwin\"* ]]; then pnpm run stub-fix:darwin; else pnpm run stub-fix:linux; fi",
"stub-fix:darwin": "find ./dist -type f -name \"*.ts\" -exec sed -i '' 's/\";$/.js\"/g' {} \\;",
"stub-fix:linux": "find ./dist -type f -name \"*.ts\" -exec sed -i 's/\";$/.js\"/g' {} \\;",
"stub": "unbuild --stub && pnpm run stub-fix",
}
yshrsmz
changed the title
stubbed d.ts fIle should import file with extension in ESM package
stubbed d.ts file should import file with extension in ESM package
Feb 8, 2024
@pi0 Would really like if this problem got resolved; in its current state, I get TS errors either when stubbing, or when building, depending on how I configure my package.json for packages in the workspace that I link to eachother. The easy stubbing functionality in unbuild was a really attractive feature when considering using it for our projects.
Environment
Node.js: v20.11.0
unbuild: 2.0.0
Reproduction
unbuild/src/builder/rollup.ts
Lines 129 to 140 in bfb4a34
Describe the bug
Say I have monorepo entirely build with ESM
Each package is declared as
"type": "module"
in its package.jsonbelow is the basic directory structure
When I execute
unbuild --stub
indb-provider
package, it generates 3 stubbed files indist/
directory:index.d.ts
,index.cjs
,index.mjs
.JS files are fine, the problem is
index.d.ts
In ESM module we need to import files with extension, but there's no extension in the generated code.
And this causes resolution errors in consumer(api) package. (such as
Module '"db-provider"' has no exported member 'ConnectionOptions'.
).I looked into the unbuild code and found out it always uses file name without the extension
unbuild/src/builder/rollup.ts
Lines 129 to 140 in bfb4a34
btw manually adding
.js
or.ts
temporarily solves the issueAdditional context
No response
Logs
No response
The text was updated successfully, but these errors were encountered: