esbuild plugin for compiling typescript declarations along with path aliases transformation.
⚠️ version>=3.0.0
of this package requireesbuild
^0.17.0
,typescript
>=5
andnodejs
>=16.10
# Using npm
npm install esbuild-plugin-d-ts-path-alias --save-dev
# Using yarn
yarn add esbuild-plugin-d-ts-path-alias -D
When you write code and use path aliases, paths are not transformed when you compile declaration files.
// source file index.ts
import { foo } from '@utils/foo';
import type { Foo } from '@utils/foo';
// compiled declaration file index.d.ts
import type { Foo } from '@utils/foo';
This plugin will help you solve this problem when you compile declaration files the paths are converted to relative.
The plugin can optionally accept a config.
Custom path to tsconfig.json
. If specified, it will be used as the highest priority path to tsconfig
.
Type | Required | Default |
---|---|---|
string |
no | — |
Custom path to output declaration files. If specified, it will be used as the highest priority path to compiled files, specifying this argument ignores declarationDir
and outDir
in tsconfig.json
.
Type | Required | Default |
---|---|---|
string |
no | — |
Should plugin output debug logs to console.
Type | Required | Default |
---|---|---|
boolean |
no | false |
You can manipulate the location of the output files by setting one of the following settings (in order of priority):
outputPath
in plugin configdeclarationDir
intsconfig.json
outDir
intsconfig.json
- if none of these options are specified, then the
outdir
oroutfile
property from theesbuild
config will be used
Default usage
import { build } from 'esbuild';
import { dTSPathAliasPlugin } from 'esbuild-plugin-d-ts-path-alias';
build({
bundle: true,
target: 'es2019',
format: 'esm',
entryPoints: ['./src/index.ts'],
outfile: './build/out.js',
plugins: [dTSPathAliasPlugin()],
});
With config
import { build } from 'esbuild';
import { dTSPathAliasPlugin } from 'esbuild-plugin-d-ts-path-alias';
build({
bundle: true,
target: 'es2019',
format: 'esm',
entryPoints: ['./src/index.ts'],
outfile: './build/out.js',
plugins: [
dTSPathAliasPlugin({
tsconfigPath: './config/tsconfig.declaration.json',
outputPath: './build/declaration',
debug: true,
}),
],
});