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

Mei*_*des 11 npm node-modules typescript package.json npm-publish

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

我的文件结构:

package.json
(...)
/src
| /module1
| | index.ts
| | (...)
| | /subModule1
| | | index.ts
| | | (...)
| | /subModule2
|   | index.ts
|   | (...)
| /module2
  | index.ts
  | (...)
Run Code Online (Sandbox Code Playgroud)

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

现在我终于想发布我的包了。人们应该能够通过以下方式从模块导入内容:

package.json
(...)
/src
| /module1
| | index.ts
| | (...)
| | /subModule1
| | | index.ts
| | | (...)
| | /subModule2
|   | index.ts
|   | (...)
| /module2
  | index.ts
  | (...)
Run Code Online (Sandbox Code Playgroud)

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

rsp*_*rsp 8

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

例子:

{
  "main": "./main.js",
  "exports": {
    ".": "./main.js",
    "./submodule": "./src/submodule.js"
  }
}
Run Code Online (Sandbox Code Playgroud)

这篇文章可能会帮助您:

加上 GitHub 上本期中的一些特定于 TypeScript 的信息:

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

  • 非常感谢:DD你的回答和[这个包](https://github.com/teppeis/typescript-subpath-exports-workaround)解决了整个问题:) (6认同)