网站搜索

节点模块仅作为 TypeScript 源代码,无需构建


我用 Typescript 写了一个小的实用函数,我在其他项目中也会使用它。目前,我有两种不同的方式来共享它,每种方式都有优点和缺点。我想知道是否有一种方法可以让我同时拥有每种方式的优点。

  1. 将我的 TS 代码构建成 CJS/ESM 模块,放在类似 dist 的目录中,并在每次修改时将其提交到代码仓库。在我的项目中使用 yarn install https://github.com/me/my-util 安装它。
  2. 只在我的工具库中保留 TS 源文件,将其作为子模块添加到每个项目中。当我构建项目时,这个仓库中的文件会与项目一起构建,就好像它们是项目的一部分一样。

如果我 yarn install 一个只有 TS 源文件的仓库,有没有办法配置我的项目以导入这些文件,而不期望它们已经被编译成 JS?我理解如果有人在“普通”项目中尝试 yarn install 我的工具,它将无法工作,但对于这个使用场景来说这是可以的。

如果可以在没有 node_modules 文件夹的 Yarn PnP 下完成这一点,将获得额外积分。