跳到正文
本頁目錄

lip install

安裝包。

概要

shell
lip install <PACKAGES> [options]

參數

參數說明
<PACKAGES>要安裝的包。

每個包參數可以是以下形式之一:

  1. 包路徑 — <path> 或 <path>#<variant>(例如 github.com/user/repo):最新版本。
  2. 帶版本的包路徑 — <path>@<version> 或 <path>#<variant>@<version>(例如 github.com/user/repo#lua@1.0.0):恰好該版本。版本為不帶前導 v 的 SemVer 2.0.0 版本。
  3. 帶 git 引用的包路徑 — <path>[#<variant>]@branch:<branch>、@tag:<tag> 或 @rev:<commit>(例如 github.com/LiteLDev/LeviLamina@branch:main):分支頭、標籤或提交 ID 所指的提交,無論其版本為何。接受任意分支名或標籤名,而不僅是 v<SemVer> 標籤;提交 ID 必須是完整的 40 位十六進制數字。參見 git 引用。
  4. 遠程歸檔 — .mcmod 或 .zip 文件的 https:// URL(例如 https://example.com/package.mcmod),後面可跟 #<variant>。下載內容按 URL 緩存。
  5. 本地歸檔 — .mcmod 或 .zip 文件,使用絕對路徑或相對於當前目錄的路徑(例如 ./package.mcmod 或 C:\Downloads\package.zip),後面可跟 #<variant>。以 ./、../、.\ 或 ..\ 開頭、為 . 或 ..、為絕對路徑,或不含 @ 且以 .mcmod 或 .zip 結尾(不區分大小寫)或指向已存在的文件或目錄的參數,都按本地處理。文件是否為 ZIP 歸檔只取決於其內容,與擴展名無關。

本地目錄不是包:lip install ./some/dir 會失敗,且不改動工作區。請先把目錄打包為 .mcmod 文件(根目錄含 manifest.json 的 ZIP 歸檔)。包內部的相對引用(./...),例如路由文檔的路由、或嵌套在歸檔中的 .mcmod,仍然照常工作。

包的依賴也會一併安裝。安裝一個已被顯式安裝的包會報錯;如需改變其版本,請使用 lip update。作為依賴安裝的包會變為顯式安裝。

git 引用

git 引用把包路徑固定到其倉庫的某個提交:

  • @branch:<branch> 取分支當前的頭。lip update 會跟隨分支到新的頭。
  • @tag:<tag> 取標籤所指的提交;任意標籤名均可,例如 @tag:nightly。lip update 會重新解析該標籤。
  • @rev:<commit> 恰好取該提交,它永遠不會變化。不接受縮寫的提交 ID,因為解析縮寫需要倉庫的全部歷史。

以這種方式安裝的包,其版本為該提交處 manifest.json(或 tooth.json)聲明的 version。只有名為 v<SemVer> 的標籤(例如 @tag:v1.2.0)會讓包取標籤的版本,與普通版本相同:該處的 manifest.json 必須聲明該版本,tooth.json 則以標籤版本為準。鎖會記錄 git 引用及其解析到的提交,因此在你更新之前,工作區始終保持該提交。

從 git 引用安裝的包,也能滿足對其不帶 git 引用的包路徑的依賴,只要其版本在依賴的範圍內:要求 github.com/LiteLDev/LeviLamina >=1.5.0 的模組,會接受從 @branch:main 安裝且聲明 1.6.0 的 LeviLamina;若其聲明 1.4.0 則失敗。

選項

選項說明
-n, --dry-run僅模擬執行,不做實際更改。
--ignore-scripts不執行任何包腳本,包括操作所移除或替換的包的卸載腳本(以及 tooth.json 包的腳本)。
--no-dependencies對每個參數恰好安裝其第一個候選,替換同一身份的已安裝包;不安裝任何依賴,也不卸載其他包。這可能導致工作區損壞。
--rid <RID>工作區的 .NET RID,例如 win-x64。

示例

shell
lip install github.com/LiteLDev/LeviLamina
lip install github.com/LiteLDev/LegacyMoney@0.22.0 --rid win-x64
lip install github.com/LiteLDev/LeviLamina@branch:main
lip install github.com/LiteLDev/LegacyMoney@tag:v0.22.0
lip install https://github.com/LiteLDev/LegacyMoney/releases/download/v0.22.0/LegacyMoney-server-win-x64.mcmod
lip install ./LegacyMoney-server-win-x64.mcmod