Nguon: Microsoft Learn · .NET 8.0

Sử dụng LibMan CLI với ASP.NET Core

Nguồn: Use the LibMan CLI with 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:

dotnetcli
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

console
libman

Xem phiên bản LibMan đã cài đặt:

console
libman --version

Xem các lệnh CLI có sẵn:

console
libman --help

Lệnh trên hiển thị kết quả tương tự như sau:

console
 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

console
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:

Đườ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.

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:

Hiển thị thông tin trợ giúp.

Đặt mức độ chi tiết của kết quả. Thay <LEVEL> bằng một trong các giá trị sau:

Ví dụ

Để tạo file libman.json trong dự án ASP.NET Core:

``console libman init ``

File libman.json được thêm vào thư mục gốc của dự án với nội dung sau:

json
{
  "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

console
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:

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.

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.

Tên provider dùng để lấy thư viện. Thay <PROVIDER> bằng một trong các giá trị sau:

Nếu không chỉ định, thuộc tính defaultProvider trong libman.json được sử dụng.

Hiển thị thông tin trợ giúp.

Đặt mức độ chi tiết của kết quả.

Ví dụ

Xem xét file libman.json sau:

json
{
  "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:

console
libman install jquery@3.2.1 --provider cdnjs --destination wwwroot/scripts/jquery --files jquery.min.js

File libman.json trông như sau:

json
{
  "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.jscalendar.css từ C:\temp\contosoCalendar\ sử dụng provider file system (hệ thống file):

console
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:

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"
      ]
    }
  ]
}

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:

Cú pháp

console
libman restore [--verbosity]
libman restore [-h|--help]

Tùy chọn

Hiển thị thông tin trợ giúp.

Đặ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:

console
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

console
libman clean [--verbosity]
libman clean [-h|--help]

Tùy chọn

Hiển thị thông tin trợ giúp.

Đặ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:

console
libman clean

Gỡ cài đặt file thư viện

Lệnh libman uninstall:

Lỗi xảy ra khi:

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

console
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:

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/"
    }
  ]
}

``console libman uninstall jquery ``

``console libman uninstall jquery@3.3.1 ``

``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:

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

console
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

Lấy phiên bản prerelease (tiền phát hành) mới nhất của thư viện.

Lấy một phiên bản cụ thể của thư viện.

Hiển thị thông tin trợ giúp.

Đặt mức độ chi tiết của kết quả.

Ví dụ

``console libman update jquery ``

``console libman update jquery --to 3.3.1 ``

``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

console
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:

Tùy chọn

Liệt kê tên các file được lưu trong bộ nhớ đệm.

Liệt kê tên các thư viện được lưu trong bộ nhớ đệm.

Hiển thị thông tin trợ giúp.

Đặt mức độ chi tiết của kết quả.

Ví dụ

``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 ```

``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.

``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) ```

``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) ```