(Do not recommend anymore, please use unplugin-dts instead)
pnpm i -D vite-plugin-dtsIn vite.config.ts:
import { resolve } from 'path'
import { defineConfig } from 'vite'
import dts from 'vite-plugin-dts'
export default defineConfig({
build: {
lib: {
entry: resolve(__dirname, 'src/index.ts'),
name: 'MyLib',
formats: ['es'],
fileName: 'my-lib',
},
},
plugins: [dts()],
})By default, the generated declaration files are following the source structure.
Fortunately, with the help of API Extractor, the plugin can bundle all types into a single file. You just need to install @microsoft/api-extractor and set bundleTypes: true:
export default defineConfig({
plugins: [dts({ bundleTypes: true })],
})If you start with official Vite template, you should specify the tsconfigPath:
export default defineConfig({
plugins: [dts({ tsconfigPath: './tsconfig.app.json' })],
})For full documentation, please refer to unplugin-dts.
A real project using this plugin: Vexip UI.
MIT License.