rsbuild-plugin-dts
v0.1.0
Published
Rsbuild plugin that supports emitting declaration files for TypeScript.
Downloads
11,955
Readme
rsbuild-plugin-dts
An Rsbuild plugin to emit declaration files for TypeScript which is built-in in Rslib.
Using in Rslib
Read DTS and lib.dts for more details.
Using in Rsbuild
Install:
npm add rsbuild-plugin-dts -D
Add plugin to rsbuild.config.ts
:
// rsbuild.config.ts
import { pluginDts } from 'rsbuild-plugin-dts';
export default {
plugins: [pluginDts()],
};
Options
bundle
- Type:
boolean
- Default:
false
Whether to bundle the DTS files.
If you want to bundle DTS files, you should:
- Install
@microsoft/api-extractor
as a development dependency, which is the underlying tool used for bundling DTS files.
npm add @microsoft/api-extractor -D
- Set
bundle
totrue
.
pluginDts({
bundle: true,
});
distPath
- Type:
string
The output directory of DTS files. The default value follows the priority below:
- The
distPath
value of the plugin options. - The
declarationDir
value in thetsconfig.json
file. - The output.distPath.root value of Rsbuild configuration.
pluginDts({
distPath: './dist-types',
});
build
- Type:
boolean
- Default:
false
Determines whether to generate DTS files while building the project references. This is equivalent to using the --build
flag with the tsc
command. See Project References for more details.
When this option is enabled, you must explicitly set declarationDir
or outDir
in tsconfig.json
in order to meet the build requirements.
abortOnError
- Type:
boolean
- Default:
true
Whether to abort the build process when an error occurs during DTS generation.
By default, type errors will cause the build to fail.
When abortOnError
is set to false
, the build will still succeed even if there are type issues in the code.
pluginDts({
abortOnError: false,
});
dtsExtension
- Type:
string
- Default:
'.d.ts'
The extension of the DTS file.
pluginDts({
dtsExtension: '.d.mts',
});
autoExternal
- Type:
boolean
- Default:
true
Whether to automatically externalize dependencies of different dependency types and do not bundle them into the DTS file.
The default value of autoExternal
is true
, which means the following dependency types will not be bundled:
dependencies
optionalDependencies
peerDependencies
And the following dependency types will be bundled:
devDependencies
pluginDts({
autoExternal: {
dependencies: true,
optionalDependencies: true,
peerDependencies: true,
devDependencies: false,
},
});
banner
- Type:
string
- Default:
undefined
Inject content into the top of each DTS file.
pluginDts({
banner: '/** @banner */',
});
footer
- Type:
string
- Default:
undefined
Inject content into the bottom of each DTS file.
pluginDts({
footer: '/** @footer */',
});
Contributing
Please read the Contributing Guide.