Nguon: Microsoft Learn · .NET 8.0

Sử dụng LibMan với ASP.NET Core trong Visual Studio

Nguồn: Use LibMan with ASP.NET Core in Visual Studio

Tác giả: Scott Addie

Visual Studio có hỗ trợ tích hợp sẵn cho LibMan trong các dự án ASP.NET Core, bao gồm:

Xem hoặc tải xuống code mẫu

Điều kiện tiên quyết

Thêm file thư viện

File thư viện có thể được thêm vào dự án ASP.NET Core theo hai cách:

  1. Sử dụng hộp thoại Add Client-Side Library
  2. Cấu hình thủ công các mục trong file manifest LibMan

Sử dụng hộp thoại Add Client-Side Library

Thực hiện các bước sau để cài đặt thư viện phía client (client-side library):

Thư mục Target Location được gợi ý dựa trên vị trí khởi chạy hộp thoại:

Gợi ý thư mục có thêm hậu tố là tên thư viện. Bảng sau minh họa các gợi ý thư mục khi cài đặt jQuery trong dự án Razor Pages.

Vị trí khởi chạyThư mục được gợi ý
Thư mục gốc dự án (nếu wwwroot tồn tại)wwwroot/lib/jquery/
Thư mục gốc dự án (nếu wwwroot không tồn tại)lib/jquery/
Thư mục Pages trong dự ánPages/jquery/

``console Restore operation started... Restoring libraries for project LibManSample Restoring library jquery@3.3.1... (LibManSample) wwwroot/lib/jquery/jquery.min.js written to destination (LibManSample) wwwroot/lib/jquery/jquery.js written to destination (LibManSample) wwwroot/lib/jquery/jquery.min.map written to destination (LibManSample) Restore operation completed 1 libraries restored in 2.32 seconds ``

Cấu hình thủ công các mục trong file manifest LibMan

Tất cả các thao tác LibMan trong Visual Studio đều dựa trên nội dung của file manifest LibMan (libman.json) ở thư mục gốc dự án. Bạn có thể chỉnh sửa thủ công libman.json để cấu hình file thư viện cho dự án. Visual Studio khôi phục tất cả file thư viện khi libman.json được lưu.

Để mở libman.json để chỉnh sửa, có các tùy chọn sau:

Nếu file libman.json chưa tồn tại trong thư mục gốc dự án, nó sẽ được tạo với nội dung mẫu mặc định.

Visual Studio cung cấp hỗ trợ chỉnh sửa JSON phong phú như tô màu, định dạng, IntelliSense, và xác thực schema. JSON schema của manifest LibMan có tại https://json.schemastore.org/libman.

Với file manifest sau, LibMan lấy các file theo cấu hình được định nghĩa trong thuộc tính libraries:

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

Lưu ý: LibMan chỉ hỗ trợ một phiên bản của mỗi thư viện từ mỗi provider. File libman.json sẽ không qua được xác thực schema nếu chứa hai thư viện có cùng tên thư viện cho một provider nhất định.

Khôi phục file thư viện

Để khôi phục file thư viện từ Visual Studio, phải có file libman.json hợp lệ trong thư mục gốc dự án. Các file được khôi phục sẽ được đặt trong dự án tại vị trí được chỉ định cho mỗi thư viện.

File thư viện có thể được khôi phục trong dự án ASP.NET Core theo hai cách:

  1. Khôi phục file trong quá trình build
  2. Khôi phục file thủ công

Khôi phục file trong quá trình build

LibMan có thể khôi phục các file thư viện đã được định nghĩa như một phần của quá trình build. Theo mặc định, hành vi restore-on-build (khôi phục khi build) bị vô hiệu hóa.

Để kích hoạt và kiểm tra hành vi restore-on-build:

``xml <PackageReference Include="Microsoft.Web.LibraryManager.Build" Version="3.0.71" /> ``

``console 1>------ Build started: Project: LibManSample, Configuration: Debug Any CPU ------ 1> 1>Restore operation started... 1>Restoring library jquery@3.3.1... 1>Restoring library bootstrap@4.1.3... 1> 1>2 libraries restored in 10.66 seconds 1>LibManSample -> C:\LibManSample\bin\Debug\netcoreapp2.1\LibManSample.dll ========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ========== ``

Khi hành vi restore-on-build được kích hoạt, menu ngữ cảnh libman.json hiển thị tùy chọn Disable Restore Client-Side Libraries on Build. Chọn tùy chọn này sẽ xóa tham chiếu gói Microsoft.Web.LibraryManager.Build khỏi file dự án. Kết quả là các thư viện phía client không còn được khôi phục ở mỗi lần build nữa.

Khôi phục file thủ công

Để khôi phục thủ công các file thư viện:

Trong khi thao tác restore đang chạy:

``console Restore operation started... Restoring libraries for project LibManSample Restoring library jquery@3.3.1... (LibManSample) wwwroot/lib/jquery/jquery.min.js written to destination (LibManSample) wwwroot/lib/jquery/jquery.js written to destination (LibManSample) wwwroot/lib/jquery/jquery.min.map written to destination (LibManSample) Restore operation completed 1 libraries restored in 2.32 seconds ``

Xóa file thư viện

Để thực hiện thao tác clean, xóa các file thư viện đã được khôi phục trước đó trong Visual Studio:

Để tránh việc vô tình xóa các file không phải thư viện, thao tác clean không xóa toàn bộ thư mục. Nó chỉ xóa các file đã được bao gồm trong lần restore trước đó.

Trong khi thao tác clean đang chạy:

console
Clean libraries operation started...
Clean libraries operation completed
2 libraries were successfully deleted in 1.91 secs

Thao tác clean chỉ xóa file khỏi dự án. Các file thư viện vẫn ở trong bộ nhớ đệm để truy xuất nhanh hơn cho các thao tác restore trong tương lai. Để quản lý các file thư viện được lưu trong bộ nhớ đệm trên máy cục bộ, hãy sử dụng LibMan CLI.

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

Để gỡ cài đặt file thư viện:

Ngoài ra, bạn có thể chỉnh sửa và lưu thủ công file manifest LibMan (libman.json). Thao tác restore chạy khi file được lưu. Các file thư viện không còn được định nghĩa trong libman.json sẽ bị xóa khỏi dự án.

Cập nhật phiên bản thư viện

Để kiểm tra phiên bản thư viện được cập nhật:

LibMan kiểm tra phiên bản thư viện mới hơn phiên bản đã cài đặt. Các kết quả sau có thể xảy ra:

Để hạ xuống phiên bản thư viện cũ hơn, hãy chỉnh sửa thủ công file libman.json. Khi file được lưu, thao tác restore của LibMan: