-
-
Notifications
You must be signed in to change notification settings - Fork 543
Open
Description
Search Terms
- imports mapping
- wildcard
Expected Behavior
The imports mapping key in package.json is a new way of specifying internal imports.
I've noticed that ts-node does not appear to understand unless all mappings are specified literally.
For example if this is done:
"imports": {
"#*.js": "./dist/*.js"
},
This allows node to import #index.js without any problems.
Actual Behavior
However if I use ts-node, it complains that
/home/cmcdragonkai/Projects/js-logger/node_modules/ts-node/dist-raw/node-internal-modules-esm-resolve.js:374
throw new ERR_PACKAGE_IMPORT_NOT_DEFINED(
^
CustomError: ERR_PACKAGE_IMPORT_NOT_DEFINED #index.js
In order to fix this, it is necessary to to define the mapping explicitly:
"imports": {
"#index.js": "./dist/index.js",
"#*.js": "./dist/*.js"
},
Steps to reproduce the problem
Create a new package with "imports" key as above.
Create a file that imports:
import x from '#index.js';
Name it .js, run it with node.
Then name it .ts and run it with ts-node.
Minimal reproduction
"ts-node": {
"esm": true
}
Specifications
- ts-node version: v10.9.1
- node version: node v18.15.0
- TypeScript version: compiler v5.1.6
waitingsong
Metadata
Metadata
Assignees
Labels
No labels