跳到正文
本頁目錄

lip migrate

把當前目錄下的包倉庫從 tooth.json 遷移到 manifest.json。

概要

shell
lip migrate

說明

請在包倉庫的根目錄(即包含 tooth.json(格式版本 1、2 或 3)的目錄)中運行。它會:

  1. 在格式允許的範圍內把 tooth.json 轉換為第 4 版 manifest.json:
    • 只有一個不帶標籤的變體、且其資源全部為 self 的 tooth.json,轉換為文件包("type": "files")。
    • 其他 tooth.json 轉換為路由文檔,每個變體對應一個條目(無標籤變體與 client 變體分別成為服務端和客戶端條目)。你仍需為每個變體發佈具體包。
  2. 寫入 manifest.json。如果倉庫中已有 manifest.json(例如你的 mod 的 LeviLamina 清單),轉換得到的鍵會合並進去:它還沒有的鍵(包括格式標記)會按該文件自身的縮進追加到末尾;它已有的鍵絕不會被覆蓋,若其值與轉換得到的值不同,lip 會對每個這樣的鍵給出警告。文件的其餘內容保持不變。
  3. 僅在 manifest.json 寫入成功後刪除 tooth.json。

如果當前目錄中沒有 tooth.json,或者 tooth.json 或已有的 manifest.json 無法讀取,lip migrate 會失敗,且不做任何修改。

所有無法用 manifest.json 表達或需要你決定的事項都會以警告形式輸出,並指明對應的 tooth.json 字段(以格式 3 的形式)。警告不會導致命令失敗。輸出只是一個起點,不保證正確:發佈前請檢查,並提交結果。詳情與侷限參見遷移包。