今天我遇到了一个与库、.d.ts 文件和相对路径相关的复杂 Typescript 情况。
我们将 React 组件库(包括类型)发布到 npm。
我们的前端项目像任何其他 npm 包一样包含此库。
通常我们的前端项目在 tsconfig.json 中有选项“skipLibCheck: true”
我们的一个应用程序没有此标志(默认情况下此标志被禁用,老实说我不知道谁会想要这种行为)
问题是,标志不存在,我们收到了 ts-error:
这是一个公平的错误:我们库中的分布式文件试图从绝对路径导入某些内容
这一行在库本身中有意义,但在node_modules/bla/bla/bla 中没有意义
Ts 是对的:这是我们这里的绝对路径吗?
在 dist/ 文件夹中进行挖掘,我检查了一些生成的组件文件是否使用相对路径正确转换:
恐慌时刻:为什么一些转译的 .d.ts 文件使用绝对路径,而另一些则使用相对路径????
稍后在 GitHub 上发布的一些 Stack Overflow 帖子和问题、主题和讨论(我将跳过不起作用的内容)
我在构建时注意到了这个vite警告:
所以...循环依赖就是这样。
我解决了导入语句中的循环依赖关系,现在一切都很好。
如果您遇到 Ts 问题?转换库中的绝对路径语句而不是相对路径,
这会导致客户端应用程序中出现 Ts 错误,这可能是由于源代码中的循环依赖造成的。
--
感谢您的阅读
我在 X 的原始帖子
以上是Ts 转译 npm 包中的绝对路径语句的详细内容。更多信息请关注PHP中文网其他相关文章!