首頁  >  文章  >  web前端  >  Ts 轉譯 npm 套件中的絕對路徑語句

Ts 轉譯 npm 套件中的絕對路徑語句

WBOY
WBOY原創
2024-08-29 12:41:52812瀏覽

今天我遇到了一個與函式庫、.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
上一篇:ReactJS 日介紹下一篇:ReactJS 日介紹