跳至主要內容

檢視目錄

將 Deno 模組從 /x 遷移至 JSR

注意:此指南僅供 Deno 使用者使用。如果你在 Node.js 或其他執行時間環境中使用 JSR,本資訊與你無關。

對於過去將模組託管在 deno.land/x 上的套件作者而言,基本上可以將這些模組遷移至 JSR,且無需進行大幅變更。在本指南中,我們會說明使用 HTTPS 匯入從 Deno 進行的變更,評論 deno.land/x 的未來支援計畫,以及說明遷移流程。

Deno 支援的 HTTPS 模組;JSR 套件支援

未來支援 deno.land/x

沒有計畫要終止或關閉 deno.land/x。模組作者可以持續在上面發佈及更新模組,而且使用它的 Deno 程式碼將會繼續運作。

從 /x 到 JSR 遷移套件

如果你已經在 deno.land/x 上發佈套件,那麼很有機會可以輕易地把它遷移到 JSR。以下是高階的遷移步驟。

嘗試使用 /x 到 JSR 遷移工具

為了協助加快既有 /x 套件遷移到 JSR 的速度,Deno 團隊已經建立了一個公用程式以自動執行最常見所需的步驟。要使用這個工具,你需要安裝最新版本的 Deno CLI。使用此命令取得你平台最新的 canary 組建

deno upgrade --canary

然後,從你的套件資料夾內部(可能是包含你的 deno.jsonmod.ts 的那個),執行下一個命令

deno run -Ar jsr:@deno/x-to-jsr

系統在可能的情況下會自動重新調整程式碼架構,並提供指示讓您在終端機執行手動步驟。當您完成遷移工具說明中的工作後,請按照這些指示將您的套件發布到 JSR!

手動重新調整套件架構

如果您寧願手動遷移專案,以下是通常需要執行的概略步驟。

1.)遠離 HTTPS 匯入

程式碼可能會針對 deno.land/x 或 deno.land/std 的相依性使用 HTTPS 匯入。在 JSR 上發布之前,您需要變更載入相依性的方式。

將標準函式庫匯入更新為 JSR 範圍的 @std

如果您正在使用標準函式庫中的 HTTPS 模組,建議您將這些相依性更新為使用 JSR 上較新的 範圍 @std。未來這將是取得這些模組最新版本的管道。

對 deno.land/x 中其他相依性使用 deno vendor

對於專案中的其他相依性,您也可以如上所述將它們逐一替換為 npm 或 JSR 上的等效相依性。

如果您發現這個過程會造成過高的執行困難,您也可以選擇使用 deno vendor 指令下載所有 HTTPS 相依性的本機版本,並將它們與您的套件一起儲存在來源控制中。

2.) 確保你的函式庫不包含速度緩慢的類型

在你的主要套件目錄執行以下指令

deno publish --dry-run

這將通知你 TypeScript 程式碼中可能會導致類型驗證變慢的任何問題。 在這裡查看文件,以取得有關如何修復速度緩慢類型的更多資訊。

3.) 發佈!

完成上述工作後,按照這些說明將套件發佈到 JSR!

在 GitHub 上編輯此頁面