首页 > 解决方案 > 导出 NPM 包的测试实用程序以在其他 NPM 包中使用

问题描述

语境

我有一个作为 NPM 包发布的 TypeScript 库,我们称之为lib. 我还有 2 个或更多模块(也包括 NPM 包)lib作为生产依赖项,我们称它们moduleAmoduleB.

问题

我现在在用于单元测试源代码的test目录中创建了一些实用程序。我注意到这些实用程序在单元测试时也会派上用场,因此我希望有一种方法可以将它们导入这些模块中,但只能作为开发依赖项,因为它们只会用于单元测试。有没有办法实现这一点而不必将测试工具提取到他们自己的 NPM 包中liblibmoduleAmoduleB

我试过的

最直接的解决方案是将测试工具提取到他们自己的 NPM 包中。然后它们可以lib作为开发依赖项导入到 2 个模块中。如果可能的话,我想避免这种情况,因为我相信 utils 生活在里面是很自然的,因为它们创建了定义在(但也用于和)lib中的数据结构的实例。libmoduleAmoduleB

我还尝试并设法在lib's中定义了多个多个导出,package.json但所有这些导出仍然作为 1 个 NPM 包导入moduleAmoduleB. 因此,没有明显的方法可以将部分lib(即源代码)作为生产依赖项,将部分(即测试工具)作为开发依赖项导入。

具体问题

如果我错过了可能相关的设置的任何细节,我很抱歉,我正在寻找一个通用的解决方案,但认为存在一个可能是错误的。如果您需要我的设置的任何其他详细信息来回答这个问题,请发表评论。

标签: typescriptnpm

解决方案


推荐阅读