首页  >  文章  >  web前端  >  Ts 转译 npm 包中的绝对路径语句

Ts 转译 npm 包中的绝对路径语句

WBOY
WBOY原创
2024-08-29 12:41:52813浏览

今天我遇到了一个与库、.d.ts 文件和相对路径相关的复杂 Typescript 情况。


我们将 React 组件库(包括类型)发布到 npm。

我们的前端项目像任何其他 npm 包一样包含此库。

通常我们的前端项目在 tsconfig.json 中有选项“skipLibCheck: true”

Ts transpiling absolute path statements in your npm package

我们的一个应用程序没有此标志(默认情况下此标志被禁用,老实说我不知道​​谁会想要这种行为)

Ts transpiling absolute path statements in your npm package


问题是,标志不存在,我们收到了 ts-error:

Ts transpiling absolute path statements in your npm package

这是一个公平的错误:我们库中的分布式文件试图从绝对路径导入某些内容

import { Foo } from 'absolutePath';

这一行在库本身中有意义,但在node_modules/bla/bla/bla 中没有意义

Ts 是对的:这是我们这里的绝对路径吗?

Ts transpiling absolute path statements in your npm package

在 dist/ 文件夹中进行挖掘,我检查了一些生成的组件文件是否使用相对路径正确转换:

Ts transpiling absolute path statements in your npm package


恐慌时刻:为什么一些转译的 .d.ts 文件使用绝对路径,而另一些则使用相对路径????


稍后在 GitHub 上发布的一些 Stack Overflow 帖子和问题、主题和讨论(我将跳过不起作用的内容)

我在构建时注意到了这个vite警告

Export of «module» was reexported through «file» 
while both modules are dependencies of each other 
and will end up in different chunks by Rollup.

Ts transpiling absolute path statements in your npm package

所以...循环依赖就是这样。


我解决了导入语句中的循环依赖关系,现在一切都很好。

长话短说

如果您遇到 Ts 问题?转换库中的绝对路径语句而不是相对路径,
这会导致客户端应用程序出现 Ts 错误,这可能是由于源代码中的循环依赖造成的。

--
感谢您的阅读

我在 X 的原始帖子

以上是Ts 转译 npm 包中的绝对路径语句的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn