Add "types" import condition to fix esm type definition file not found #257
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
close #248
As of Typescript 4.7, when esmodule applications with
moduleResolution: nodenext
use this library, Typescript cannot find a declaration file for.mjs
file (https://devblogs.microsoft.com/typescript/announcing-typescript-4-7/#package-json-exports-imports-and-self-referencing).To fix the problem, add "types" field to import condition.
Details
About the problem
Here is example:
package.json
tsconfig.json
This emits the following error
This PR fixes the issue.
About
postbuild
To find type definition file for
.mjs
, it requires.d.mts
.Ideally, tsup should add support for generating
.d.mts
or.d.cts
file, but currently the feature is not implemented (egoist/tsup#760).So this PR copies
.d.ts
to.d.mts
in apostbuild
script as a workaround.