起因。

最近在编写自己的组件库,使用monorepo模式进行开发,monorepo开发将utils单独作为工具库,原本打算使用tsc编译出去的,无意中发现了打包工具。

介绍

tsup 是一个基于 ESBuild 实现在零配置的情况下快速打包 Typescript 模块的库,支持 .ts、.tsx的转换。它基于esbuild,但是同时也选择融合其他的构建工具共同参与,弥补了esbuild的不足。

安装使用

# pnpm 安装 同样也可以npm yarn 等
pnpm add tsup -D

packages.json 文件中声明

{
    "build":"tsup"
}

简单使用可以在命令后面加输出路径等 也可以添加配置文件去使用

{
    "build":"tsup src/index.ts src/cli.ts"
}

也可以使用配置文件,根目录下面新建一个 tsup.config.ts 文件


import { defineConfig } from 'tsup'

export default defineConfig({
  entry: ['./src/index.ts'], // 打包入口
  splitting: false,
  sourcemap: true,
  clean: true,
})

"scripts": {
    "build": "tsup --format esm,cjs,iife --config tsup.config.ts"
},

这里也可以定义打包目录之类的,详情查看官网。配置信息比较完全 https://tsup.egoist.dev/#what-can-it-bundle