程式庫管理員 (LibMan) 是輕量型的用戶端程式庫取得工具。 LibMan 會從檔案系統或內容傳遞網路 (CDN)下載熱門的程式庫和架構。 支援的 CDN 包含 CDNJS、jsDelivr、和 unpkg。 所選程式庫檔會擷取並放置在 ASP.NET Core 專案中的適當位置。
Prerequisites
Installation
下列命令會安裝 LibMan:
dotnet tool install -g Microsoft.Web.LibraryManager.Cli
Note
根據預設,要安裝的 .NET 二進位檔架構代表目前執行的 OS 架構。 若要指定不同的 OS 架構,請參閱 dotnet tool install, --arch option。 如需詳細資訊,請參閱 GitHub 問題 dotnet/AspNetCore.Docs #29262。
從 NuGet 套件安裝 Microsoft.Web.LibraryManager.Cli。
Usage
libman
若要檢視已安裝的 LibMan 版本:
libman --version
若要檢視可用的 CLI 命令:
libman --help
上述命令顯示的輸出,類似如下:
1.0.163+g45474d37ed
Usage: libman [options] [command]
Options:
--help|-h Show help information
--version Show version information
Commands:
cache List or clean libman cache contents
clean Deletes all library files defined in libman.json from the project
init Create a new libman.json
install Add a library definition to the libman.json file, and download the
library to the specified location
restore Downloads all files from provider and saves them to specified
destination
uninstall Deletes all files for the specified library from their specified
destination, then removes the specified library definition from
libman.json
update Updates the specified library
Use "libman [command] --help" for more information about a command.
下列各節將概述可用的 CLI 命令。
在專案中初始化 LibMan
如果檔案不存在,libman init 命令會建立 libman.json 檔案。 檔案是使用預設項目範本內容建立的。
Synopsis
libman init [-d|--default-destination] [-p|--default-provider] [--verbosity]
libman init [-h|--help]
選項
以下是使用 libman init 命令時可用的選項:
-d|--default-destination <PATH>相對於目前資料夾的路徑。 如果
destination中沒有為程式庫定義的libman.json屬性,則程式庫檔會安裝在此位置。<PATH>值寫入defaultDestination的libman.json屬性。-p|--default-provider <PROVIDER>如果沒有為指定的程式庫定義提供者,則使用該提供者。
<PROVIDER>值寫入defaultProvider的libman.json屬性。 將<PROVIDER>取代為下列其中一個值:cdnjsfilesystemjsdelivrunpkg
-h|--help顯示說明資訊。
--verbosity <LEVEL>設定輸出的詳細程度。 將
<LEVEL>取代為下列其中一個值:quietnormaldetailed
Examples
若要在 ASP.NET Core 專案中建立 libman.json 檔案:
瀏覽至專案根目錄。
執行以下命令:
libman init輸入預設提供者的名稱,或按下
Enter以使用預設 CDNJS 提供者。 有效值包括:cdnjsfilesystemjsdelivrunpkg
libman.json 檔案會新增至具有下列內容的專案根目錄:
{
"version": "1.0",
"defaultProvider": "cdnjs",
"libraries": []
}
新增程式庫檔
libman install 命令會將程式庫檔下載並安裝到專案中。 如果 libman.json 檔案不存在,則會新增該檔案。
libman.json 檔案會修改為儲存程式庫檔的設定詳細資料。
Synopsis
libman install <LIBRARY> [-d|--destination] [--files] [-p|--provider] [--verbosity]
libman install [-h|--help]
Arguments
LIBRARY
要安裝的程式庫名稱。 此名稱可能包含版本號碼標記法 (例如,@1.2.0)。
選項
以下是使用 libman install 命令時可用的選項:
-d|--destination <PATH>安裝程式庫的位置。 如果未指定,則會使用預設的位置。 如果未在
defaultDestination中指定libman.json屬性,則需要此選項。注意: 目的地路徑有一些限制。 例如,當套件來源具有完整的專案結構,而不只是散發資料夾時,您無法指定移動資料夾。 如需詳細資訊,請參閱 問題5#407 和 問題 #702
--files <FILE>指定要從程式庫安裝之檔案的名稱。 如果未指定,則安裝程式庫中的所有檔案。 為每個要安裝的檔案提供一個
--files選項。 也支援相對路徑。 例如:--files dist/browser/signalr.js。-p|--provider <PROVIDER>要用於程式庫擷取的提供者名稱。 將
<PROVIDER>取代為下列其中一個值:cdnjsfilesystemjsdelivrunpkg
如果未指定,則會使用
defaultProvider中的libman.json屬性。 如果未在defaultProvider中指定libman.json屬性,則需要此選項。
-h|--help顯示說明資訊。
--verbosity <LEVEL>設定輸出的詳細程度。 將
<LEVEL>取代為下列其中一個值:quietnormaldetailed
Examples
請考量下列 libman.json 檔案:
{
"version": "1.0",
"defaultProvider": "cdnjs",
"libraries": []
}
若要使用 CDNJS 將 jQuery 3.2.1 版 jquery.min.js 檔案安裝到 wwwroot/scripts/jquery 資料夾:
libman install jquery@3.2.1 --provider cdnjs --destination wwwroot/scripts/jquery --files jquery.min.js
libman.json 檔案如下所示:
{
"version": "1.0",
"defaultProvider": "cdnjs",
"libraries": [
{
"library": "jquery@3.2.1",
"destination": "wwwroot/scripts/jquery",
"files": [
"jquery.min.js"
]
}
]
}
若要使用檔案系統提供者,從 calendar.js 安裝 calendar.css 和 檔案:
libman install C:\temp\contosoCalendar\ --provider filesystem --files calendar.js --files calendar.css
出現下列提示有兩個原因:
-
libman.json檔案不包含defaultDestination屬性。 -
libman install命令不包含-d|--destination選項。
接受預設目的地之後,libman.json 檔案會如下所示:
{
"version": "1.0",
"defaultProvider": "cdnjs",
"libraries": [
{
"library": "jquery@3.2.1",
"destination": "wwwroot/scripts/jquery",
"files": [
"jquery.min.js"
]
},
{
"library": "C:\\temp\\contosoCalendar\\",
"provider": "filesystem",
"destination": "wwwroot/lib/contosoCalendar",
"files": [
"calendar.js",
"calendar.css"
]
}
]
}
還原程式庫檔
libman restore 命令會安裝 libman.json 中定義的程式庫檔。 適用的規則如下:
- 如果專案根目錄中沒有
libman.json檔案,則會傳回錯誤。 - 如果程式庫指定提供者,則會忽略
defaultProvider中的libman.json屬性。 - 如果程式庫指定目的地,則會忽略
defaultDestination中的libman.json屬性。
Synopsis
libman restore [--verbosity]
libman restore [-h|--help]
選項
以下是使用 libman restore 命令時可用的選項:
-h|--help顯示說明資訊。
--verbosity <LEVEL>設定輸出的詳細程度。 將
<LEVEL>取代為下列其中一個值:quietnormaldetailed
Examples
若要還原 libman.json 中定義的程式庫檔:
libman restore
刪除程式庫檔
libman clean 命令刪除之前透過 LibMan 還原的程式庫檔。 刪除此作業之後變成空白的資料夾。
libraries 的 libman.json 屬性中程式庫檔的相關聯組態不會被移除。
Synopsis
libman clean [--verbosity]
libman clean [-h|--help]
選項
以下是使用 libman clean 命令時可用的選項:
-h|--help顯示說明資訊。
--verbosity <LEVEL>設定輸出的詳細程度。 將
<LEVEL>取代為下列其中一個值:quietnormaldetailed
Examples
若要刪除透過 LibMan 安裝的程式庫檔:
libman clean
解除安裝程式庫檔
libman uninstall 命令:
- 從
libman.json中的目的地刪除與指定程式庫相關聯的所有檔案。 - 從
libman.json移除相關聯的程式庫設定。
在以下情況會發生錯誤:
- 專案根目錄中沒有
libman.json檔案。 - 指定的程式庫不存在。
如果已安裝多個相同名稱的程式庫,則系統會提示您選擇一個。
Synopsis
libman uninstall <LIBRARY> [--verbosity]
libman uninstall [-h|--help]
Arguments
LIBRARY
要解除安裝的程式庫名稱。 此名稱可能包含版本號碼標記法 (例如,@1.2.0)。
選項
以下是使用 libman uninstall 命令時可用的選項:
-h|--help顯示說明資訊。
--verbosity <LEVEL>設定輸出的詳細程度。 將
<LEVEL>取代為下列其中一個值:quietnormaldetailed
Examples
請考量下列 libman.json 檔案:
{
"version": "1.0",
"defaultProvider": "cdnjs",
"libraries": [
{
"library": "jquery@3.7.1",
"files": [
"jquery.min.js",
"jquery.js",
"jquery.min.map"
],
"destination": "wwwroot/lib/jquery/"
},
{
"provider": "unpkg",
"library": "bootstrap@5.3.6",
"destination": "wwwroot/lib/bootstrap/"
}
]
}
若要解除安裝 jQuery,以下任一命令均會成功:
libman uninstall jquerylibman uninstall jquery@3.3.1若要解除安裝透過
filesystem提供者安裝的 Lodash 檔案:libman uninstall C:\temp\lodash\
更新程式庫版本
libman update 命令會透過 LibMan 安裝的程式庫更新為指定的版本。
在以下情況會發生錯誤:
- 專案根目錄中沒有
libman.json檔案。 - 指定的程式庫不存在。
如果已安裝多個相同名稱的程式庫,則系統會提示您選擇一個。
Synopsis
libman update <LIBRARY> [-pre] [--to] [--verbosity]
libman update [-h|--help]
Arguments
LIBRARY
要更新的程式庫名稱。
選項
以下是使用 libman update 命令時可用的選項:
-pre取得程式庫的最新發行前版本。
--to <VERSION>取得程式庫的特定版本。
-h|--help顯示說明資訊。
--verbosity <LEVEL>設定輸出的詳細程度。 將
<LEVEL>取代為下列其中一個值:quietnormaldetailed
Examples
若要將 jQuery 更新為最新版本:
libman update jquery若要將 jQuery 更新為 3.3.1 版:
libman update jquery --to 3.3.1若要將 jQuery 更新為最新的發行前版本:
libman update jquery -pre
管理程式庫快取
libman cache 命令會管理 LibMan 程式庫快取。
filesystem 提供者不會使用程式庫快取。
Synopsis
libman cache clean [<PROVIDER>] [--verbosity]
libman cache list [--files] [--libraries] [--verbosity]
libman cache [-h|--help]
Arguments
PROVIDER
僅與 clean 命令搭配使用。 指定要清除的提供者快取。 有效值包括:
cdnjsfilesystemjsdelivrunpkg
選項
以下是使用 libman cache 命令時可用的選項:
--files列出快取的檔案名稱。
--libraries列出快取的程式庫名稱。
-h|--help顯示說明資訊。
--verbosity <LEVEL>設定輸出的詳細程度。 將
<LEVEL>取代為下列其中一個值:quietnormaldetailed
Examples
若要檢視每個提供者的快取程式庫名稱,請使用下列其中一個命令:
libman cache listlibman cache list --libraries會顯示類似下列的輸出:
Cache contents: --------------- unpkg: knockout react vue cdnjs: font-awesome jquery knockout lodash.js react若要檢視每個提供者的快取程式庫檔名稱:
libman cache list --files會顯示類似下列的輸出:
Cache contents: --------------- unpkg: knockout: <list omitted for brevity> react: <list omitted for brevity> vue: <list omitted for brevity> cdnjs: font-awesome metadata.json jquery metadata.json 3.2.1\core.js 3.2.1\jquery.js 3.2.1\jquery.min.js 3.2.1\jquery.min.map 3.2.1\jquery.slim.js 3.2.1\jquery.slim.min.js 3.2.1\jquery.slim.min.map 3.3.1\core.js 3.3.1\jquery.js 3.3.1\jquery.min.js 3.3.1\jquery.min.map 3.3.1\jquery.slim.js 3.3.1\jquery.slim.min.js 3.3.1\jquery.slim.min.map knockout metadata.json 3.4.2\knockout-debug.js 3.4.2\knockout-min.js lodash.js metadata.json 4.17.10\lodash.js 4.17.10\lodash.min.js react metadata.json請注意,上述輸出顯示 jQuery 3.2.1 和 3.3.1 版貯藏位於 CDNJS 提供者之下。
若要清空 CDNJS 提供者的程式庫快取:
libman cache clean cdnjs清空 CDNJS 提供者快取之後,
libman cache list指令會顯示下列內容:Cache contents: --------------- unpkg: knockout react vue cdnjs: (empty)若要清空所有支援提供者的快取:
libman cache clean清空所有提供者快取之後,
libman cache list命令會顯示下列內容:Cache contents: --------------- unpkg: (empty) cdnjs: (empty)