Sử dụng LibMan CLI với ASP.NET Core
Library Manager (LibMan) là một công cụ nhẹ để lấy thư viện phía client. LibMan tải xuống các thư viện và framework phổ biến từ hệ thống file hoặc từ content delivery network (CDN - mạng phân phối nội dung). Các CDN được hỗ trợ bao gồm CDNJS, jsDelivr, và unpkg. Các file thư viện được chọn sẽ được tải về và đặt vào vị trí thích hợp trong dự án ASP.NET Core.
Điều kiện tiên quyết
Cài đặt
Lệnh sau cài đặt LibMan:
dotnet tool install -g Microsoft.Web.LibraryManager.Cli
Lưu ý: Theo mặc định, kiến trúc của các file nhị phân .NET được cài đặt thể hiện kiến trúc hệ điều hành đang chạy. Để chỉ định kiến trúc khác, xem cách sử dụng lệnh dotnet tool install với tùy chọn --arch.
Một .NET Global Tool được cài đặt từ gói NuGet Microsoft.Web.LibraryManager.Cli.
Cách sử dụng
libman
Xem phiên bản LibMan đã cài đặt:
libman --version
Xem các lệnh CLI có sẵn:
libman --help
Lệnh trên hiển thị kết quả tương tự như sau:
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.Các phần sau đây mô tả các lệnh CLI có sẵn.
Khởi tạo LibMan trong dự án
Lệnh libman init tạo file libman.json nếu chưa tồn tại. File được tạo với nội dung mẫu mặc định.
Cú pháp
libman init [-d|--default-destination] [-p|--default-provider] [--verbosity] libman init [-h|--help]
Tùy chọn
Các tùy chọn sau có sẵn cho lệnh libman init:
-d|--default-destination <PATH>
Đường dẫn tương đối so với thư mục hiện tại. Các file thư viện sẽ được cài đặt ở vị trí này nếu không có thuộc tính destination được định nghĩa cho thư viện trong libman.json. Giá trị <PATH> được ghi vào thuộc tính defaultDestination của libman.json.
-p|--default-provider <PROVIDER>
Provider (nhà cung cấp) sẽ dùng nếu không có provider nào được định nghĩa cho thư viện. Giá trị <PROVIDER> được ghi vào thuộc tính defaultProvider của libman.json. Thay <PROVIDER> bằng một trong các giá trị sau:
cdnjsfilesystemjsdelivrunpkg-h|--help
Hiển thị thông tin trợ giúp.
--verbosity <LEVEL>
Đặt mức độ chi tiết của kết quả. Thay <LEVEL> bằng một trong các giá trị sau:
quietnormaldetailed
Ví dụ
Để tạo file libman.json trong dự án ASP.NET Core:
- Điều hướng đến thư mục gốc của dự án.
- Chạy lệnh sau:
``console libman init ``
- Nhập tên provider mặc định, hoặc nhấn
Enterđể sử dụng provider CDNJS mặc định. Các giá trị hợp lệ bao gồm: cdnjsfilesystemjsdelivrunpkg
File libman.json được thêm vào thư mục gốc của dự án với nội dung sau:
{
"version": "1.0",
"defaultProvider": "cdnjs",
"libraries": []
}Thêm file thư viện
Lệnh libman install tải xuống và cài đặt các file thư viện vào dự án. File libman.json sẽ được tạo nếu chưa tồn tại. File libman.json được chỉnh sửa để lưu thông tin cấu hình cho các file thư viện.
Cú pháp
libman install <LIBRARY> [-d|--destination] [--files] [-p|--provider] [--verbosity] libman install [-h|--help]
Đối số
LIBRARY
Tên thư viện cần cài đặt. Tên này có thể bao gồm ký hiệu số phiên bản (ví dụ: @1.2.0).
Tùy chọn
Các tùy chọn sau có sẵn cho lệnh libman install:
-d|--destination <PATH>
Vị trí cài đặt thư viện. Nếu không chỉ định, vị trí mặc định được sử dụng. Nếu không có thuộc tính defaultDestination trong libman.json, tùy chọn này là bắt buộc.
> Lưu ý: Có các giới hạn về đường dẫn đích. Ví dụ, khi nguồn gói có cấu trúc dự án đầy đủ chứ không chỉ thư mục phân phối, bạn không thể chỉ định việc di chuyển một thư mục.
--files <FILE>
Chỉ định tên file cần cài đặt từ thư viện. Nếu không chỉ định, tất cả file từ thư viện được cài đặt. Cung cấp một tùy chọn --files cho mỗi file cần cài đặt. Đường dẫn tương đối cũng được hỗ trợ. Ví dụ: --files dist/browser/signalr.js.
-p|--provider <PROVIDER>
Tên provider dùng để lấy thư viện. Thay <PROVIDER> bằng một trong các giá trị sau:
cdnjsfilesystemjsdelivrunpkg
Nếu không chỉ định, thuộc tính defaultProvider trong libman.json được sử dụng.
-h|--help
Hiển thị thông tin trợ giúp.
--verbosity <LEVEL>
Đặt mức độ chi tiết của kết quả.
Ví dụ
Xem xét file libman.json sau:
{
"version": "1.0",
"defaultProvider": "cdnjs",
"libraries": []
}Để cài đặt file jquery.min.js của jQuery phiên bản 3.2.1 vào thư mục wwwroot/scripts/jquery sử dụng provider CDNJS:
libman install jquery@3.2.1 --provider cdnjs --destination wwwroot/scripts/jquery --files jquery.min.js
File libman.json trông như sau:
{
"version": "1.0",
"defaultProvider": "cdnjs",
"libraries": [
{
"library": "jquery@3.2.1",
"destination": "wwwroot/scripts/jquery",
"files": [
"jquery.min.js"
]
}
]
}Để cài đặt các file calendar.js và calendar.css từ C:\temp\contosoCalendar\ sử dụng provider file system (hệ thống file):
libman install C:\temp\contosoCalendar\ --provider filesystem --files calendar.js --files calendar.css
Sau khi chấp nhận đích mặc định, file libman.json trông như sau:
{
"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"
]
}
]
}Khôi phục file thư viện
Lệnh libman restore cài đặt các file thư viện được định nghĩa trong libman.json. Các quy tắc sau áp dụng:
- Nếu không có file
libman.jsontrong thư mục gốc của dự án, lỗi sẽ được trả về. - Nếu thư viện chỉ định một provider, thuộc tính
defaultProvidertronglibman.jsonbị bỏ qua. - Nếu thư viện chỉ định một đích, thuộc tính
defaultDestinationtronglibman.jsonbị bỏ qua.
Cú pháp
libman restore [--verbosity] libman restore [-h|--help]
Tùy chọn
-h|--help
Hiển thị thông tin trợ giúp.
--verbosity <LEVEL>
Đặt mức độ chi tiết của kết quả.
Ví dụ
Để khôi phục các file thư viện được định nghĩa trong libman.json:
libman restore
Xóa file thư viện
Lệnh libman clean xóa các file thư viện đã được khôi phục trước đó qua LibMan. Các thư mục trở nên rỗng sau thao tác này sẽ bị xóa. Cấu hình liên quan của các file thư viện trong thuộc tính libraries của libman.json không bị xóa.
Cú pháp
libman clean [--verbosity] libman clean [-h|--help]
Tùy chọn
-h|--help
Hiển thị thông tin trợ giúp.
--verbosity <LEVEL>
Đặt mức độ chi tiết của kết quả.
Ví dụ
Để xóa các file thư viện đã cài đặt qua LibMan:
libman clean
Gỡ cài đặt file thư viện
Lệnh libman uninstall:
- Xóa tất cả file liên quan đến thư viện được chỉ định từ đích trong
libman.json. - Xóa cấu hình thư viện liên quan khỏi
libman.json.
Lỗi xảy ra khi:
- Không có file
libman.jsontrong thư mục gốc của dự án. - Thư viện được chỉ định không tồn tại.
Nếu có nhiều hơn một thư viện với cùng tên được cài đặt, bạn sẽ được nhắc chọn một.
Cú pháp
libman uninstall <LIBRARY> [--verbosity] libman uninstall [-h|--help]
Đối số
LIBRARY
Tên thư viện cần gỡ cài đặt. Tên này có thể bao gồm ký hiệu số phiên bản (ví dụ: @1.2.0).
Ví dụ
Xem xét file libman.json sau:
{
"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/"
}
]
}- Để gỡ cài đặt jQuery, một trong các lệnh sau thành công:
``console libman uninstall jquery ``
``console libman uninstall jquery@3.3.1 ``
- Để gỡ cài đặt các file Lodash đã cài đặt qua provider
filesystem:
``console libman uninstall C:\temp\lodash\ ``
Cập nhật phiên bản thư viện
Lệnh libman update cập nhật một thư viện đã cài đặt qua LibMan lên phiên bản được chỉ định.
Lỗi xảy ra khi:
- Không có file
libman.jsontrong thư mục gốc của dự án. - Thư viện được chỉ định không tồn tại.
Nếu có nhiều hơn một thư viện với cùng tên được cài đặt, bạn sẽ được nhắc chọn một.
Cú pháp
libman update <LIBRARY> [-pre] [--to] [--verbosity] libman update [-h|--help]
Đối số
LIBRARY
Tên thư viện cần cập nhật.
Tùy chọn
-pre
Lấy phiên bản prerelease (tiền phát hành) mới nhất của thư viện.
--to <VERSION>
Lấy một phiên bản cụ thể của thư viện.
-h|--help
Hiển thị thông tin trợ giúp.
--verbosity <LEVEL>
Đặt mức độ chi tiết của kết quả.
Ví dụ
- Để cập nhật jQuery lên phiên bản mới nhất:
``console libman update jquery ``
- Để cập nhật jQuery lên phiên bản 3.3.1:
``console libman update jquery --to 3.3.1 ``
- Để cập nhật jQuery lên phiên bản prerelease mới nhất:
``console libman update jquery -pre ``
Quản lý bộ nhớ đệm thư viện
Lệnh libman cache quản lý bộ nhớ đệm (cache) thư viện LibMan. Provider filesystem không sử dụng bộ nhớ đệm thư viện.
Cú pháp
libman cache clean [<PROVIDER>] [--verbosity] libman cache list [--files] [--libraries] [--verbosity] libman cache [-h|--help]
Đối số
PROVIDER
Chỉ dùng với lệnh clean. Chỉ định bộ nhớ đệm provider cần xóa. Các giá trị hợp lệ bao gồm:
cdnjsfilesystemjsdelivrunpkg
Tùy chọn
--files
Liệt kê tên các file được lưu trong bộ nhớ đệm.
--libraries
Liệt kê tên các thư viện được lưu trong bộ nhớ đệm.
-h|--help
Hiển thị thông tin trợ giúp.
--verbosity <LEVEL>
Đặt mức độ chi tiết của kết quả.
Ví dụ
- Để xem tên các thư viện được lưu trong bộ nhớ đệm theo từng provider, dùng một trong các lệnh sau:
``console libman cache list ``
``console libman cache list --libraries ``
Kết quả tương tự như sau được hiển thị:
```console Cache contents:
unpkg: knockout react vue cdnjs: font-awesome jquery knockout lodash.js react ```
- Để xem tên các file thư viện được lưu trong bộ nhớ đệm theo từng provider:
``console libman cache list --files ``
Kết quả tương tự như sau được hiển thị:
```console 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 ```
Lưu ý kết quả trên cho thấy jQuery phiên bản 3.2.1 và 3.3.1 được lưu trong bộ nhớ đệm của provider CDNJS.
- Để xóa bộ nhớ đệm thư viện cho provider CDNJS:
``console libman cache clean cdnjs ``
Sau khi xóa bộ nhớ đệm provider CDNJS, lệnh libman cache list hiển thị:
```console Cache contents:
unpkg: knockout react vue cdnjs: (empty) ```
- Để xóa bộ nhớ đệm cho tất cả các provider được hỗ trợ:
``console libman cache clean ``
Sau khi xóa bộ nhớ đệm của tất cả provider, lệnh libman cache list hiển thị:
```console Cache contents:
unpkg: (empty) cdnjs: (empty) ```