欢迎光临散文网 会员登陆 & 注册

tsup:一个新型 esbuild 驱动的 TypeScript 库打包工具(下)

2023-09-14 21:58 作者:写代码的宝哥  | 我要投稿

原文链接:Create Your New Modern TypeScript/JavaScript Library With tsup,2022.11.15,by Christopher T.


自定义配置:通过 tsup.config.ts


当然我们还可以使用 tsup 做更多的事情——通过配置文件。tsup 在运行时会自动读取并名为 tsup.config.ts 的文件。我们创建一下这个文件,并添加以下内容:


import type { Options } from 'tsup' const config: Options = {  // } export default config


通过这个配置文件,我们可以指示 tsup 编译器执行不同的操作。


例如,我们可以通过将 dts 设置为 true 来指示 tsup 生成 TypeScript 声明文件:


// tsup.config.ts

const config: Options = {  entry: ['src/index.ts'],  dts: true, }


对于这个设置,我们需要在项目中安装 TypeScript,否则会收到一个错误:


npm i --save-dev typescript


当我们再次运行 npm run build 时,tsup 就帮我们生成了一个额外的声明文件。

我们还可以生成源代码映射文件,以便在调试过程中生成更准确的堆栈跟踪(stack traces)信息:

tsup.config.ts

现在,客户端代码(client.js)就能在 IDE(如 VS Code)中看到 TypeScript 类型提示了:

多格式输出


一个库的作者面临的问题是如何支持不同的客户端消费格式。目前有几种常见的格式:

中我们可以轻松地通过 format 字段配置,生成这三种格式。


执行后的打印输出:

执行后的打印输出:

目录结构:

在我们的 client.js 文件中,目前我们可以没有问题地使用我们的库。然而,为了让消费者导入与其项目所使用格式相对应的文件,我们需要编辑 package.json 为特定导入方式指向特定格式的文件。

关于 exports 的工作原理,超出了本篇文章的范围,有兴趣的同学,可以点击这里转到官方的 Node.js 文档进行查看。

发布 npm 包


现在我们已经介绍了创建一个最小化的现代 JavaScript/TypeScript 库所需的基本推荐要求!下一步,我们需要将我们的包发布到 npm 中央仓库中,方便三方用户可以通过 npm 安装我们的包。


为此,在 package.json 中添加一个 publishConfig 键,并将 access 字段设置成“public”:

在终端中输入 npm publish,你应该会看到类似于以下内容(将 my-typescript-library 替换成你的包名):

结束!


本文对应的代码仓库,可以点击这里(https://github.com/jsmanifest/my-typescript-library)查看。


总结

这篇文章到此结束!希望对你有帮助,谢谢!




tsup:一个新型 esbuild 驱动的 TypeScript 库打包工具(下)的评论 (共 条)

分享到微博请遵守国家法律