dts-bundle 是一个 NPM 包,它可以将 TypeScript 模块转换为单个捆绑在一起的 .d.ts 文件。这个工具可以帮助我们简化 TypeScript 模块的使用,并提高项目的可维护性。
安装
使用 npm 进行全局安装:
--- ------- -- ----------
或者在项目中作为开发依赖进行安装:
--- ------- ---------- ----------
使用
基本使用
在项目根目录下执行以下命令:
---------- ------------ -- ----------
其中,src/index.ts
是项目入口文件,index.d.ts
是输出文件。执行该命令后会将 src
目录下的所有模块都打包到一个单独的 .d.ts
文件中。
配置文件
我们也可以通过配置文件来指定要打包的模块、输出文件名等参数。创建一个名为 dts-bundle-config.json
的配置文件,并将其放置在项目根目录下。示例配置如下:
- ------- ------------------------ ------- --------------- ------ ------------- ---------- - -------------- - -
name
:包名称。main
:主入口文件。out
:输出文件名。exclude
:要排除的文件。
执行以下命令来执行打包:
---------- -------- ----------------------
Gulp 插件
我们也可以使用 Gulp 来集成 dts-bundle。首先安装 gulp-dts-bundle 插件:
--- ------- ---------- ---------------
然后在 gulpfile.js
文件中配置:
----- ---- - ---------------- ----- --------- - --------------------------- ---------------- -- -- - ------ ----------------------- ------------------ ---------------------- ---
运行 gulp 命令即可执行打包。
示例代码
假设我们有一个名为 your-module
的 TypeScript 模块,其中包含以下文件:
------------ --- ---- - --- -------- - --- ------ --- ------ - --- ------------- - --- ----------- --- ------------ --- -------------
src/index.ts
------ - --- - ---- -------- ------ -------- ----- - ------------------- -
src/foo.ts
------ -------- ----- - ------ ------ -------- -
tests/index.test.ts
------ - ------ - ---- ------- ------ - --- - ---- ------------- --------------- -- -- - ---------- ------ ------ --------- -- -- - ----------------------------- --------- --- ---
package.json
- ------- ------------------------ ---------- -------- ------- ---------------- ---------- ------------------ ---------- - -------- ---- -- ---------- ------------ -- ----------------- ------- ------ ------------------- -- ------------------ - -------------- ---------- --------------- --------- ------- --------- ------------- --------- ------- --------- ------------------ --------- -------- --------- ------------- -------- - -
tsconfig.json
- ------------------ - --------- ----------- --------- ------ -------------- ----------------------------------------------------------- ---------- ---------------------------------------------------------------------------------------