This tool ensures that your compiled JavaScript files are valid ESM by replacing or appending missing extensions in the output files.
Automatically detects typescript configuration and paths. Handles all types of imports (absolute, relative, internal, dynamic etc.)
npm install --save-dev @2bad/tsfix
You can use tsfix
as a post-build script in your project. Add the following script to your package.json:
{
"scripts": {
"build": "tsc",
"postbuild": "tsfix"
}
}
This will run tsfix
automatically after your TypeScript compilation. Alternatively, you can run tsfix manually:
npx @2bad/tsfix
Consider the following TypeScript files:
// src/main.ts
import { helper } from './utils/helper.ts'
// src/utils/helper.ts
export const helper = () => 'helper function'
After running tsc, the compiled JavaScript files might look like this:
// dist/main.js
import { helper } from './utils/helper.ts'
// dist/utils/helper.js
export const helper = () => 'helper function'
Running tsfix will transform the import paths to:
// dist/main.js
import { helper } from './utils/helper.js'
We welcome contributions! If you find a bug or want to request a new feature, please open an issue. If you want to submit a bug fix or new feature, please open a pull request.