將 Deno 模組從 /x 遷移至 JSR
注意:此指南僅供 Deno 使用者使用。如果你在 Node.js 或其他執行時間環境中使用 JSR,本資訊與你無關。
對於過去將模組託管在 deno.land/x 上的套件作者而言,基本上可以將這些模組遷移至 JSR,且無需進行大幅變更。在本指南中,我們會說明使用 HTTPS 匯入從 Deno 進行的變更,評論 deno.land/x 的未來支援計畫,以及說明遷移流程。
Deno 支援的 HTTPS 模組;JSR 套件不支援
沒有計畫要終止或關閉 deno.land/x。模組作者可以持續在上面發佈及更新模組,而且使用它的 Deno 程式碼將會繼續運作。
從 /x 到 JSR 遷移套件
如果你已經在 deno.land/x 上發佈套件,那麼很有機會可以輕易地把它遷移到 JSR。以下是高階的遷移步驟。
嘗試使用 /x 到 JSR 遷移工具
為了協助加快既有 /x 套件遷移到 JSR 的速度,Deno 團隊已經建立了一個公用程式以自動執行最常見所需的步驟。要使用這個工具,你需要安裝最新版本的 Deno CLI。使用此命令取得你平台最新的 canary 組建
deno upgrade --canary
然後,從你的套件資料夾內部(可能是包含你的 deno.json
或 mod.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!