Package Exports
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (fix-esm-import-path) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
fix-esm-import-path
Auto fix import path for esm compatibility.
This cli tool modifies specified Typescript / Javascript files recursively. It appends .js
extension on the import / export statements of relative module path.
Installation
## for global cli
npm install --global fix-esm-import-path
## for npm script
npm install -D fix-esm-import-path
Usage
fix-esm-import-path [options] <file-or-directory>
Options
--process-import-type
: To add .js
extension in the import path of import type
statements when needed.
--preserve-import-type
: To preserve the import path of import type
statements as is.
Default mode is --process-import-type
.
(Click to expand the reason)
In previous version, fix-esm-import-path
does not modify the import path of import type
statements because they are supposed to be removed in the javascript output.
However, under some settings, import path with extension is required for import type
statements as well. So now fix-esm-import-path
now modifies the import path of import type
statements as well.
If your setup does not require fixing the import path for import type
statements and you want to minimize git changes, you can use the --preserve-import-type
flag to leave them as is.
Usage Example
Example on shell:
npx fix-esm-import-path dist/server/index.js
Example on npm script (in package.json
):
{
"type": "module",
"scripts": {
"build": "run-s tsc fix",
"test": "run-s build js",
"tsc": "tsc -p .",
"fix": "fix-esm-import-path dist/test.js",
"js": "node dist/test"
},
"devDependencies": {
"fix-esm-import-path": "^1.0.1",
"npm-run-all": "^4.1.5",
"ts-node": "^10.1.0",
"typescript": "^4.3.5"
}
}
Details refer to example
Related discussions
- Appending .js extension on relative import statements during Typescript compilation (ES6 modules)
- Provide a way to add the '.js' file extension to the end of module specifiers
- [FEATURE] absolute->relative module path transformation
- Support TypeScript import type when targeting ESNext with NodeNext module
License
This is free and open-source software (FOSS) with BSD-2-Clause License