Skip to content

快速开始

undts是一个TypeScript的bundle工具,内部使用了rollup + rollup-plugin-dts,因此它能完美支持.d.ts文件的tree-shaking!同时这个小工具使用起来也非常的简单,只需要配置一个小文件即可。

安装

bash
pnpm install -D undts

直接使用

在项目根目录下创建一个build.ts文件,然后写入以下内容:

ts
import { build } from 'undts'

build({
  // 定义你的入口文件
  entry: [
    'src/index.ts',
  ]
})

然后执行以下命令,这里使用了tsx来直接运行build.ts文件:

bash
pnpx tsx build.ts

然后你就可以在dist目录下看到打包好的index.d.ts文件了。

与rollup/esbuild/tsup/vite库模式配合使用

感谢强大的unplugin,undts可以与vite/rollup/esbuild等工具无缝配合,它会自动使用vite/rollup/esbuild配置文件的entry/input选项作为undtsentry选项。

Vite 库模式下使用(推荐)
ts
// vite.config.ts
import undts from 'undts/vite'
import { defineConfig } from 'vite'

export default defineConfig({
  build: {
    lib: {
      // undts会自动使用这个entry选项,你不需要在插件选项中再次设置
      entry: 'src/index.ts',
    },
  },

  plugins: [
    undts()
  ],
})
与Rollup + SWC一起使用
js
// rollup.config.ts
import swc from '@rollup/plugin-swc'
import { defineConfig } from 'rollup'
import undts from 'undts/rollup'

export default defineConfig({
  input: 'src/index.ts',
  output: {
    dir: 'dist',
    format: 'esm',
  },

  plugins: [
    swc(),
    // 它会自动使用input选项作为undts的entry选项
    undts(),
  ],
})
与 tsup 一起使用(tsup是基于esbuild的一个很方便的打包工具)
ts
// tsup.config.ts
import { defineConfig } from 'tsup'
import undts from 'undts/esbuild'

export default defineConfig({
  entry: ['src/index.ts'],
  // 禁用tsup的默认dts生成,使用undts代替(提一嘴,其实tsup的dts生成也是基于rollup-plugin-dts的)
  dts: false,
  sourcemap: true,
  esbuildPlugins: [
    // 它会自动使用entry选项作为undts的entry选项
    undts(),
  ],
})