如何将打字稿包拆分成多个子模块?

How to split a typescript package into multiple submodules?

我最新的打字稿项目分为不同的模块和子模块

我的文件结构:

package.json
(...)
/src
| /module1
| | index.ts
| | (...)
| | /subModule1
| | | index.ts
| | | (...)
| | /subModule2
|   | index.ts
|   | (...)
| /module2
  | index.ts
  | (...)

每个(子)模块都有一个 index.ts 文件保存模块的导出。

现在我终于要发布我的包了。应该能够从 模块如下:

import { A } from "package/module1";
import { B, C } from "package/module1/subModule2";

我已经使用这种语法从 npm 上的其他包导入内容。但是我找不到关于如何实现这种行为的任何解释。我发现一些文章解释了多个文件,但没有解释文件夹和子文件夹中结构的多个模块。

请参阅 Node 文档中的“子路径导出”:

示例:

{
  "main": "./main.js",
  "exports": {
    ".": "./main.js",
    "./submodule": "./src/submodule.js"
  }
}

这篇文章可能对您有所帮助:

加上本期 GitHub 上的一些 TypeScript-specific 信息:

既然你说你已经在从 npm 上的其他包导入东西时使用了这种语法,那么你也可以查看这些包的源代码以了解它们是如何做到的。