typescript - 导出 NPM 包的测试实用程序以在其他 NPM 包中使用
问题描述
语境
我有一个作为 NPM 包发布的 TypeScript 库,我们称之为lib
. 我还有 2 个或更多模块(也包括 NPM 包)lib
作为生产依赖项,我们称它们moduleA
为moduleB
.
问题
我现在在用于单元测试源代码的test
目录中创建了一些实用程序。我注意到这些实用程序在单元测试时也会派上用场,因此我希望有一种方法可以将它们导入这些模块中,但只能作为开发依赖项,因为它们只会用于单元测试。有没有办法实现这一点而不必将测试工具提取到他们自己的 NPM 包中?lib
lib
moduleA
moduleB
我试过的
最直接的解决方案是将测试工具提取到他们自己的 NPM 包中。然后它们可以lib
作为开发依赖项导入到 2 个模块中。如果可能的话,我想避免这种情况,因为我相信 utils 生活在里面是很自然的,因为它们创建了定义在(但也用于和)lib
中的数据结构的实例。lib
moduleA
moduleB
我还尝试并设法在lib
's中定义了多个多个导出,package.json
但所有这些导出仍然作为 1 个 NPM 包导入moduleA
和moduleB
. 因此,没有明显的方法可以将部分lib
(即源代码)作为生产依赖项,将部分(即测试工具)作为开发依赖项导入。
具体问题
- 有没有办法导入一个“导出”(即入口点,我可以定义多个)
lib
作为生产依赖项,另一个作为开发依赖项? - 如果人们以前遇到过这种情况,那么您最终使用的模式是什么?
如果我错过了可能相关的设置的任何细节,我很抱歉,我正在寻找一个通用的解决方案,但认为存在一个可能是错误的。如果您需要我的设置的任何其他详细信息来回答这个问题,请发表评论。
解决方案
推荐阅读
- java - 如何关闭单个excel文件,而不是当前使用java打开的所有excel文件
- java - 弹跳球。球很迟钝。repaint() 太慢了
- php - Prestashop 1.7 - 客户 Web 服务中的重复电子邮件
- python - return int(value) ValueError: int() 以 10 为基数的无效文字:'' Django Rest Framework
- python - Post to API 适用于 Postman,但生成的 Python 代码不能
- html - 为什么每个单词都在一个单独的行中?
- javascript - 如何在 Layout 中为多个 Views .NET Core 使用 javascript?
- django - 我想将匹配项分配给我在 django admin 中选择的用户
- ios - 等待新数据时的 UIPageViewController 缓存问题
- google-cloud-platform - 我们如何在 GCP composer enviornment(1.10.6) 中使用 SFTPToGCSOperator?