Mô-đun workbox-build tích hợp vào quy trình xây dựng dựa trên nút và có thể tạo toàn bộ trình chạy dịch vụ hoặc chỉ tạo danh sách tài sản để lưu vào bộ nhớ đệm trước có thể được sử dụng trong trình chạy dịch vụ hiện có.
Hai chế độ mà hầu hết các nhà phát triển sẽ sử dụng là generateSW và injectManifest. Câu trả lời cho các câu hỏi sau đây có thể giúp bạn chọn chế độ và cấu hình phù hợp để sử dụng.
Chế độ nên sử dụng
generateSW
Chế độ generateSW sẽ tạo một tệp worker cho bạn, được tuỳ chỉnh thông qua các tuỳ chọn cấu hình và ghi tệp đó vào ổ đĩa.
Trường hợp sử dụng generateSW
- Bạn muốn lưu các tệp vào bộ nhớ đệm trước.
- Bạn có nhu cầu lưu vào bộ nhớ đệm thời gian chạy đơn giản.
Trường hợp KHÔNG nên sử dụng generateSW
- Bạn muốn sử dụng các tính năng khác của Worker dịch vụ (tức là Web Push).
- Bạn muốn nhập thêm tập lệnh hoặc thêm logic cho các chiến lược lưu vào bộ nhớ đệm tuỳ chỉnh.
injectManifest
Chế độ injectManifest sẽ tạo danh sách URL để lưu vào bộ nhớ đệm trước và thêm tệp kê khai lưu vào bộ nhớ đệm trước đó vào tệp worker dịch vụ hiện có. Nếu không, tệp sẽ giữ nguyên trạng thái.
Trường hợp sử dụng injectManifest
- Bạn muốn có nhiều quyền kiểm soát hơn đối với worker dịch vụ.
- Bạn muốn lưu các tệp vào bộ nhớ đệm trước.
- Bạn cần tuỳ chỉnh định tuyến và chiến lược.
- Bạn muốn sử dụng worker dịch vụ với các tính năng khác của nền tảng (ví dụ: Web Push).
Trường hợp KHÔNG nên sử dụng injectManifest
- Bạn muốn có cách dễ nhất để thêm trình chạy dịch vụ vào trang web của mình.
Chế độ generateSW
Bạn có thể sử dụng chế độ generateSW trong tập lệnh bản dựng dựa trên nút bằng cách sử dụng các tuỳ chọn cấu hình phổ biến nhất, như sau:
// Inside of build.js:
const {generateSW} = require('workbox-build');
// These are some common options, and not all are required.
// Consult the docs for more info.
generateSW({
  dontCacheBustURLsMatching: [new RegExp('...')],
  globDirectory: '...',
  globPatterns: ['...', '...'],
  maximumFileSizeToCacheInBytes: ...,
  navigateFallback: '...',
  runtimeCaching: [{
    // Routing via a matchCallback function:
    urlPattern: ({request, url}) => ...,
    handler: '...',
    options: {
      cacheName: '...',
      expiration: {
        maxEntries: ...,
      },
    },
  }, {
    // Routing via a RegExp:
    urlPattern: new RegExp('...'),
    handler: '...',
    options: {
      cacheName: '...',
      plugins: [..., ...],
    },
  }],
  skipWaiting: ...,
  swDest: '...',
}).then(({count, size, warnings}) => {
  if (warnings.length > 0) {
    console.warn(
      'Warnings encountered while generating a service worker:',
      warnings.join('\n')
    );
  }
  console.log(`Generated a service worker, which will precache ${count} files, totaling ${size} bytes.`);
});
Thao tác này sẽ tạo một worker dịch vụ có chế độ thiết lập lưu vào bộ nhớ đệm trước cho tất cả các tệp được cấu hình của bạn chọn và các quy tắc lưu vào bộ nhớ đệm trong thời gian chạy được cung cấp.
Bạn có thể xem bộ tuỳ chọn cấu hình đầy đủ trong tài liệu tham khảo.
Chế độ injectManifest
Bạn có thể sử dụng chế độ injectManifest trong tập lệnh bản dựng dựa trên nút bằng cách sử dụng các tuỳ chọn cấu hình phổ biến nhất, như sau:
// Inside of build.js:
const {injectManifest} = require('workbox-build');
// These are some common options, and not all are required.
// Consult the docs for more info.
injectManifest({
  dontCacheBustURLsMatching: [new RegExp('...')],
  globDirectory: '...',
  globPatterns: ['...', '...'],
  maximumFileSizeToCacheInBytes: ...,
  swDest: '...',
  swSrc: '...',
}).then(({count, size, warnings}) => {
  if (warnings.length > 0) {
    console.warn(
      'Warnings encountered while injecting the manifest:',
      warnings.join('\n')
    );
  }
  console.log(`Injected a manifest which will precache ${count} files, totaling ${size} bytes.`);
});
Thao tác này sẽ tạo một tệp kê khai bộ nhớ đệm trước dựa trên các tệp được cấu hình của bạn chọn và chèn tệp đó vào tệp worker dịch vụ hiện có.
Bạn có thể xem bộ tuỳ chọn cấu hình đầy đủ trong tài liệu tham khảo.
Các chế độ khác
Chúng tôi dự kiến rằng generateSW hoặc injectManifest sẽ phù hợp với hầu hết nhu cầu của nhà phát triển. Tuy nhiên, workbox-build còn hỗ trợ một chế độ khác có thể phù hợp với một số trường hợp sử dụng nhất định.
Chế độ getManifest
Về mặt khái niệm, chế độ này tương tự như chế độ injectManifest, nhưng thay vì thêm tệp kê khai vào tệp worker dịch vụ nguồn, chế độ này sẽ trả về một mảng các mục nhập tệp kê khai, cùng với thông tin về số lượng mục nhập và tổng kích thước.
Bạn có thể sử dụng chế độ injectManifest trong tập lệnh bản dựng dựa trên nút bằng cách sử dụng các tuỳ chọn cấu hình phổ biến nhất, như sau:
// Inside of build.js:
const {getManifest} = require('workbox-build');
// These are some common options, and not all are required.
// Consult the docs for more info.
getManifest({
  dontCacheBustURLsMatching: [new RegExp('...')],
  globDirectory: '...',
  globPatterns: ['...', '...'],
  maximumFileSizeToCacheInBytes: ...,
}).then(({manifestEntries, count, size, warnings}) => {
  if (warnings.length > 0) {
    console.warn(
      'Warnings encountered while getting the manifest:',
      warnings.join('\n')
    );
  }
  // Do something with the manifestEntries, and potentially log count and size.
});
Bạn có thể xem bộ tuỳ chọn cấu hình đầy đủ trong tài liệu tham khảo.
Loại
BasePartial
Thuộc tính
- 
    additionalManifestEntries(string | ManifestEntry)[] không bắt buộc Danh sách các mục cần được lưu vào bộ nhớ đệm trước, ngoài mọi mục được tạo trong cấu hình bản dựng. 
- 
    dontCacheBustURLsMatchingRegExp không bắt buộc Các thành phần khớp với URL này sẽ được giả định là có phiên bản riêng biệt thông qua URL của chúng và được miễn khỏi việc huỷ bộ nhớ đệm HTTP thông thường được thực hiện khi điền sẵn bộ nhớ đệm. Mặc dù không bắt buộc, nhưng bạn nên cung cấp một RegExp sẽ phát hiện giá trị [hash]đó nếu quy trình xây dựng hiện tại của bạn đã chèn giá trị[hash]vào mỗi tên tệp, vì điều này sẽ làm giảm băng thông tiêu thụ khi lưu vào bộ nhớ đệm trước.
- 
    manifestTransformsManifestTransform[] không bắt buộc Một hoặc nhiều hàm sẽ được áp dụng tuần tự cho tệp kê khai đã tạo. Nếu bạn cũng chỉ định modifyURLPrefixhoặcdontCacheBustURLsMatching, thì các phép biến đổi tương ứng sẽ được áp dụng trước.
- 
    maximumFileSizeToCacheInBytessố không bắt buộc Giá trị mặc định là: 2097152 Bạn có thể dùng giá trị này để xác định kích thước tối đa của các tệp sẽ được lưu vào bộ nhớ đệm trước. Điều này giúp bạn không vô tình lưu các tệp rất lớn vào bộ nhớ đệm trước, những tệp này có thể vô tình khớp với một trong các mẫu của bạn. 
- 
    modifyURLPrefixđối tượng không bắt buộc Một đối tượng ánh xạ tiền tố chuỗi đến các giá trị chuỗi thay thế. Bạn có thể sử dụng thuộc tính này để, ví dụ: xoá hoặc thêm tiền tố đường dẫn khỏi mục nhập tệp kê khai nếu chế độ thiết lập dịch vụ lưu trữ web không khớp với chế độ thiết lập hệ thống tệp cục bộ. Để có một giải pháp thay thế linh hoạt hơn, bạn có thể sử dụng tuỳ chọn manifestTransformsvà cung cấp một hàm sửa đổi các mục trong tệp kê khai bằng bất kỳ logic nào bạn cung cấp.Ví dụ về cách sử dụng: // Replace a '/dist/' prefix with '/', and also prepend // '/static' to every URL. modifyURLPrefix: { '/dist/': '/', '': '/static', }
BuildResult
Loại
Bỏ qua<GetManifestResult"manifestEntries" 
 > & đối tượng
Thuộc tính
- 
    filePathsstring[] 
GeneratePartial
Thuộc tính
- 
    babelPresetEnvTargetsstring[] không bắt buộc Giá trị mặc định là: ["chrome >= 56"] Mục tiêu để truyền vào babel-preset-envkhi chuyển đổi gói worker dịch vụ.
- 
    cacheIdchuỗi không bắt buộc Mã nhận dạng không bắt buộc để thêm vào trước tên bộ nhớ đệm. Điều này chủ yếu hữu ích cho việc phát triển cục bộ, trong đó nhiều trang web có thể được phân phát từ cùng một nguồn gốc http://localhost:port.
- 
    cleanupOutdatedCachesboolean không bắt buộc Giá trị mặc định là: false Liệu Workbox có nên cố gắng xác định và xoá mọi bộ nhớ đệm trước tạo bằng các phiên bản cũ, không tương thích hay không. 
- 
    clientsClaimboolean không bắt buộc Giá trị mặc định là: false Liệu worker dịch vụ có nên bắt đầu kiểm soát mọi ứng dụng hiện có ngay khi kích hoạt hay không. 
- 
    directoryIndexchuỗi không bắt buộc Nếu yêu cầu điều hướng cho một URL có đuôi là /không khớp với một URL được lưu vào bộ nhớ đệm trước, thì giá trị này sẽ được thêm vào URL và sẽ được kiểm tra để tìm kết quả khớp với bộ nhớ đệm trước. Bạn nên đặt giá trị này thành giá trị mà máy chủ web của bạn đang sử dụng cho chỉ mục thư mục.
- 
    disableDevLogsboolean không bắt buộc Giá trị mặc định là: false 
- 
    ignoreURLParametersMatchingRegExp[] không bắt buộc Mọi tên tham số tìm kiếm khớp với một trong các RegExp trong mảng này sẽ bị xoá trước khi tìm kiếm kết quả khớp được lưu trước. Điều này sẽ hữu ích nếu người dùng có thể yêu cầu các URL chứa, ví dụ: các tham số URL dùng để theo dõi nguồn lưu lượng truy cập. Nếu bạn không cung cấp, giá trị mặc định sẽ là [/^utm_/, /^fbclid$/].
- 
    importScriptsstring[] không bắt buộc Danh sách các tệp JavaScript cần được truyền đến importScripts()bên trong tệp worker được tạo. Điều này rất hữu ích khi bạn muốn Workbox tạo tệp worker cấp cao nhất, nhưng muốn thêm một số mã bổ sung, chẳng hạn như trình nghe sự kiện đẩy.
- 
    inlineWorkboxRuntimeboolean không bắt buộc Giá trị mặc định là: false Liệu mã thời gian chạy cho thư viện Workbox có được đưa vào trình chạy dịch vụ cấp cao nhất hay không, hoặc được chia thành một tệp riêng cần được triển khai cùng với trình chạy dịch vụ. Việc tách biệt thời gian chạy có nghĩa là người dùng sẽ không phải tải lại mã Workbox mỗi khi trình chạy dịch vụ cấp cao nhất của bạn thay đổi. 
- 
    chế độchuỗi không bắt buộc Giá trị mặc định là: "production" Nếu bạn đặt thành "production" (phiên bản chính thức), thì một gói worker dịch vụ được tối ưu hoá sẽ được tạo, trong đó không bao gồm thông tin gỡ lỗi. Nếu không được định cấu hình rõ ràng tại đây, giá trị process.env.NODE_ENVsẽ được sử dụng và nếu không, giá trị này sẽ quay lại'production'.
- 
    chuỗi không bắt buộc Giá trị mặc định là: null Nếu được chỉ định, tất cả yêu cầu điều hướng cho các URL không được lưu vào bộ nhớ đệm trước sẽ được thực hiện bằng HTML tại URL được cung cấp. Bạn phải truyền vào URL của một tài liệu HTML được liệt kê trong tệp kê khai lưu vào bộ nhớ đệm trước. Bạn nên sử dụng phương thức này trong trường hợp Ứng dụng một trang, trong đó bạn muốn tất cả các thao tác điều hướng đều sử dụng HTML vỏ ứng dụng phổ biến. 
- 
    RegExp[] không bắt buộc Một mảng biểu thức chính quy không bắt buộc, dùng để hạn chế những URL mà hành vi navigateFallbackđã định cấu hình áp dụng. Điều này hữu ích nếu bạn chỉ coi một nhóm nhỏ URL của trang web là một phần của Ứng dụng một trang. Nếu bạn định cấu hình cảnavigateFallbackDenylistvànavigateFallbackAllowlist, thì danh sách từ chối sẽ được ưu tiên.Lưu ý: Các RegExp này có thể được đánh giá dựa trên mọi URL đích trong quá trình điều hướng. Tránh sử dụng RegExp phức tạp, nếu không người dùng có thể gặp phải độ trễ khi điều hướng trên trang web của bạn. 
- 
    RegExp[] không bắt buộc Một mảng biểu thức chính quy không bắt buộc, dùng để hạn chế những URL mà hành vi navigateFallbackđã định cấu hình áp dụng. Điều này hữu ích nếu bạn chỉ coi một nhóm nhỏ URL của trang web là một phần của Ứng dụng một trang. Nếu bạn định cấu hình cảnavigateFallbackDenylistvànavigateFallbackAllowlist, thì danh sách từ chối sẽ được ưu tiên.Lưu ý: Các RegExp này có thể được đánh giá dựa trên mọi URL đích trong quá trình điều hướng. Tránh sử dụng RegExp phức tạp, nếu không người dùng có thể gặp phải độ trễ khi điều hướng trên trang web của bạn. 
- 
    boolean không bắt buộc Giá trị mặc định là: false Liệu có bật tính năng tải trước điều hướng trong worker dịch vụ đã tạo hay không. Khi đặt thành true, bạn cũng phải sử dụng runtimeCachingđể thiết lập một chiến lược phản hồi phù hợp sẽ khớp với các yêu cầu điều hướng và sử dụng phản hồi được tải trước.
- 
    offlineGoogleAnalyticsboolean | GoogleAnalyticsInitializeOptions không bắt buộc Giá trị mặc định là: false Kiểm soát việc có bao gồm tính năng hỗ trợ cho Google Analytics ngoại tuyến hay không. Khi true, lệnh gọi đếninitialize()củaworkbox-google-analyticssẽ được thêm vào worker dịch vụ đã tạo. Khi được đặt thànhObject, đối tượng đó sẽ được truyền vào lệnh gọiinitialize(), cho phép bạn tuỳ chỉnh hành vi.
- 
    runtimeCachingRuntimeCaching[] không bắt buộc Khi sử dụng các công cụ bản dựng của Workbox để tạo trình chạy dịch vụ, bạn có thể chỉ định một hoặc nhiều cấu hình lưu vào bộ nhớ đệm trong thời gian chạy. Sau đó, các lệnh gọi này sẽ được dịch sang lệnh gọi workbox-routing.registerRoutebằng cách sử dụng cấu hình trình xử lý và khớp mà bạn xác định.Để biết tất cả các tuỳ chọn, hãy xem tài liệu về workbox-build.RuntimeCaching. Ví dụ dưới đây cho thấy một cấu hình thông thường, với hai tuyến thời gian chạy được xác định:
- 
    skipWaitingboolean không bắt buộc Giá trị mặc định là: false Liệu có nên thêm lệnh gọi vô điều kiện vào skipWaiting()cho worker dịch vụ đã tạo hay không. Nếu làfalse, thì trình nghemessagesẽ được thêm vào, cho phép các trang ứng dụng kích hoạtskipWaiting()bằng cách gọipostMessage({type: 'SKIP_WAITING'})trên một worker dịch vụ đang chờ.
- 
    sourcemapboolean không bắt buộc Giá trị mặc định là: true Liệu có tạo bản đồ nguồn cho các tệp worker dịch vụ đã tạo hay không. 
GenerateSWOptions
Loại
GetManifestOptions
GetManifestResult
Thuộc tính
- 
    số lượngsố 
- 
    manifestEntries
- 
    sizesố 
- 
    cảnh báostring[] 
GlobPartial
Thuộc tính
- 
    globFollowboolean không bắt buộc Giá trị mặc định là: true Xác định xem có tuân theo đường liên kết tượng trưng hay không khi tạo tệp kê khai bộ nhớ đệm trước. Để biết thêm thông tin, hãy xem định nghĩa về followtrong tài liệu vềglob.
- 
    globIgnoresstring[] không bắt buộc Giá trị mặc định là: ["**\/node_modules\/**\/*"] Một tập hợp các mẫu khớp với tệp để luôn loại trừ khi tạo tệp kê khai bộ nhớ đệm trước. Để biết thêm thông tin, hãy xem định nghĩa về ignoretrong tài liệu vềglob.
- 
    globPatternsstring[] không bắt buộc Giá trị mặc định là: ["**\/*.{js,wasm,css,html}"] Các tệp khớp với bất kỳ mẫu nào trong số này sẽ được đưa vào tệp kê khai lưu vào bộ nhớ đệm trước. Để biết thêm thông tin, hãy xem bài viết giới thiệu về glob.
- 
    globStrictboolean không bắt buộc Giá trị mặc định là: true Nếu đúng, lỗi đọc thư mục khi tạo tệp kê khai bộ nhớ đệm trước sẽ khiến bản dựng không thành công. Nếu giá trị là false, thư mục có vấn đề sẽ bị bỏ qua. Để biết thêm thông tin, hãy xem định nghĩa của stricttrong tài liệu vềglob.
- 
    templatedURLsđối tượng không bắt buộc Nếu một URL được hiển thị dựa trên một số logic phía máy chủ, thì nội dung của URL đó có thể phụ thuộc vào nhiều tệp hoặc một số giá trị chuỗi duy nhất khác. Các khoá trong đối tượng này là URL do máy chủ hiển thị. Nếu giá trị là một mảng chuỗi, thì các giá trị đó sẽ được diễn giải là mẫu globvà nội dung của mọi tệp khớp với mẫu sẽ được dùng để tạo phiên bản URL duy nhất. Nếu được sử dụng với một chuỗi duy nhất, chuỗi đó sẽ được diễn giải là thông tin phiên bản duy nhất mà bạn đã tạo cho một URL nhất định.
InjectManifestOptions
Loại
InjectPartial
Thuộc tính
- 
    injectionPointchuỗi không bắt buộc Giá trị mặc định là: "self.__WB_MANIFEST" Chuỗi cần tìm bên trong tệp swSrc. Sau khi tìm thấy, tệp này sẽ được thay thế bằng tệp kê khai bộ nhớ đệm trước được tạo.
- 
    swSrcchuỗi Đường dẫn và tên tệp của tệp worker sẽ được đọc trong quá trình xây dựng, tương ứng với thư mục đang hoạt động. 
ManifestEntry
Thuộc tính
- 
    tính toàn vẹnchuỗi không bắt buộc 
- 
    bản sửa đổichuỗi 
- 
    urlchuỗi 
ManifestTransform()
workbox-build.ManifestTransform(
manifestEntries: (ManifestEntry & object)[],
compilation?: unknown,
): Promise<ManifestTransformResult> | ManifestTransformResult
Loại
hàm
Tham số
- 
    manifestEntries(ManifestEntry & object)[] - 
    sizesố 
 
- 
    
- 
    biên dịchkhông xác định không bắt buộc 
Giá trị trả về
- 
            Promise<ManifestTransformResult> | ManifestTransformResult 
ManifestTransformResult
Thuộc tính
- 
    tệp kê khai(ManifestEntry & object)[] - 
    sizesố 
 
- 
    
- 
    cảnh báostring[] không bắt buộc 
OptionalGlobDirectoryPartial
Thuộc tính
- 
    globDirectorychuỗi không bắt buộc Thư mục cục bộ mà bạn muốn so khớp globPatterns. Đường dẫn tương ứng với thư mục hiện tại.
RequiredGlobDirectoryPartial
Thuộc tính
- 
    globDirectorychuỗi Thư mục cục bộ mà bạn muốn so khớp globPatterns. Đường dẫn tương ứng với thư mục hiện tại.
RequiredSWDestPartial
Thuộc tính
- 
    swDestchuỗi Đường dẫn và tên tệp của tệp trình chạy dịch vụ sẽ được tạo bằng quy trình xây dựng, tương ứng với thư mục đang hoạt động. Tên tệp phải kết thúc bằng ".js". 
RuntimeCaching
Thuộc tính
- 
    trình xử lýĐiều này xác định cách tuyến thời gian chạy sẽ tạo phản hồi. Để sử dụng một trong các workbox-strategiestích hợp sẵn, hãy cung cấp tên củaworkbox-strategiesđó, chẳng hạn như'NetworkFirst'. Ngoài ra, đây có thể là một hàm gọi lạiworkbox-core.RouteHandlervới logic phản hồi tuỳ chỉnh.
- 
    methodHTTPMethod không bắt buộc Giá trị mặc định là: "GET" Phương thức HTTP để so khớp. Giá trị mặc định của 'GET'thường là đủ, trừ phi bạn cần so khớp rõ ràng'POST','PUT'hoặc một loại yêu cầu khác.
- 
    tùy chọnđối tượng không bắt buộc - 
    backgroundSyncđối tượng không bắt buộc Việc định cấu hình này sẽ thêm một thực thể workbox-background-sync.BackgroundSyncPluginvàoworkbox-strategiesđược định cấu hình tronghandler.- 
    tênchuỗi 
- 
    tùy chọnQueueOptions không bắt buộc 
 
- 
    
- 
    broadcastUpdateđối tượng không bắt buộc Việc định cấu hình này sẽ thêm một thực thể workbox-broadcast-update.BroadcastUpdatePluginvàoworkbox-strategiesđược định cấu hình tronghandler.- 
    channelNamechuỗi không bắt buộc 
- 
    tùy chọn
 
- 
    
- 
    cacheNamechuỗi không bắt buộc Nếu được cung cấp, thuộc tính này sẽ đặt thuộc tính cacheNamecủaworkbox-strategiesđược định cấu hình tronghandler.
- 
    cacheableResponseCacheableResponseOptions không bắt buộc Việc định cấu hình này sẽ thêm một thực thể workbox-cacheable-response.CacheableResponsePluginvàoworkbox-strategiesđược định cấu hình tronghandler.
- 
    hết hạnExpirationPluginOptions không bắt buộc Việc định cấu hình này sẽ thêm một thực thể workbox-expiration.ExpirationPluginvàoworkbox-strategiesđược định cấu hình tronghandler.
- 
    fetchOptionsRequestInit không bắt buộc Việc định cấu hình này sẽ truyền giá trị fetchOptionsđếnworkbox-strategiesđược định cấu hình tronghandler.
- 
    matchOptionsCacheQueryOptions không bắt buộc Việc định cấu hình này sẽ truyền giá trị matchOptionsđếnworkbox-strategiesđược định cấu hình tronghandler.
- 
    networkTimeoutSecondssố không bắt buộc Nếu được cung cấp, thuộc tính này sẽ đặt thuộc tính networkTimeoutSecondscủaworkbox-strategiesđược định cấu hình tronghandler. Xin lưu ý rằng chỉ'NetworkFirst'và'NetworkOnly'mới hỗ trợnetworkTimeoutSeconds.
- 
    trình bổ trợWorkboxPlugin[] không bắt buộc Việc định cấu hình này cho phép sử dụng một hoặc nhiều trình bổ trợ Workbox không có tuỳ chọn "lối tắt" (chẳng hạn như expirationchoworkbox-expiration.ExpirationPlugin). Các trình bổ trợ được cung cấp tại đây sẽ được thêm vàoworkbox-strategiesđược định cấu hình tronghandler.
- 
    precacheFallbackđối tượng không bắt buộc Việc định cấu hình này sẽ thêm một thực thể workbox-precaching.PrecacheFallbackPluginvàoworkbox-strategiesđược định cấu hình tronghandler.- 
    fallbackURLchuỗi 
 
- 
    
- 
    rangeRequestsboolean không bắt buộc Việc bật tuỳ chọn này sẽ thêm một thực thể workbox-range-requests.RangeRequestsPluginvàoworkbox-strategiesđược định cấu hình tronghandler.
 
- 
    
- 
    urlPatternstring | RegExp | RouteMatchCallback Tiêu chí so khớp này xác định xem trình xử lý đã định cấu hình có tạo phản hồi cho mọi yêu cầu không khớp với một trong các URL được lưu vào bộ nhớ đệm trước hay không. Nếu bạn xác định nhiều tuyến RuntimeCaching, thì tuyến đầu tiên cóurlPatternkhớp sẽ là tuyến phản hồi.Giá trị này ánh xạ trực tiếp đến tham số đầu tiên được truyền đến workbox-routing.registerRoute. Bạn nên sử dụng hàmworkbox-core.RouteMatchCallbackđể linh hoạt nhất.
StrategyName
Enum
"CacheFirst" 
 
"CacheOnly" 
 
"NetworkFirst" 
 
"NetworkOnly" 
 
"StaleWhileRevalidate" 
 
WebpackGenerateSWOptions
WebpackGenerateSWPartial
Thuộc tính
- 
    importScriptsViaChunksstring[] không bắt buộc Một hoặc nhiều tên của các phần webpack. Nội dung của các phần đó sẽ được đưa vào worker dịch vụ được tạo, thông qua lệnh gọi đến importScripts().
- 
    swDestchuỗi không bắt buộc Giá trị mặc định là: "service-worker.js" Tên tài sản của tệp worker dịch vụ do trình bổ trợ này tạo. 
WebpackInjectManifestOptions
WebpackInjectManifestPartial
Thuộc tính
- 
    compileSrcboolean không bắt buộc Giá trị mặc định là: true Khi true(mặc định), tệpswSrcsẽ được webpack biên dịch. Khifalse, quá trình biên dịch sẽ không diễn ra (và bạn không thể sử dụngwebpackCompilationPlugins). Đặt thànhfalsenếu bạn muốn chèn tệp kê khai vào, ví dụ: tệp JSON.
- 
    swDestchuỗi không bắt buộc Tên tài sản của tệp worker dịch vụ sẽ do trình bổ trợ này tạo. Nếu bạn bỏ qua, tên sẽ dựa trên tên swSrc.
- 
    webpackCompilationPluginsany[] không bắt buộc Trình bổ trợ webpackkhông bắt buộc sẽ được dùng khi biên dịch tệp đầu vàoswSrc. Chỉ hợp lệ nếucompileSrclàtrue.
WebpackPartial
Thuộc tính
- 
    đoạnstring[] không bắt buộc Một hoặc nhiều tên đoạn có tệp đầu ra tương ứng phải được đưa vào tệp kê khai bộ nhớ đệm trước. 
- 
    loại trừ(string | RegExp | function)[] không bắt buộc Một hoặc nhiều chỉ định dùng để loại trừ các thành phần khỏi tệp kê khai bộ nhớ đệm trước. Giá trị này được diễn giải theo các quy tắc tương tự như tuỳ chọn excludetiêu chuẩn củawebpack. Nếu bạn không cung cấp, giá trị mặc định sẽ là[/\.map$/, /^manifest.*\.js$].
- 
    excludeChunksstring[] không bắt buộc Một hoặc nhiều tên đoạn có tệp đầu ra tương ứng sẽ bị loại trừ khỏi tệp kê khai bộ nhớ đệm trước. 
- 
    bao gồm(string | RegExp | function)[] không bắt buộc Một hoặc nhiều chỉ định dùng để đưa các thành phần vào tệp kê khai bộ nhớ đệm trước. Giá trị này được diễn giải theo các quy tắc tương tự như tuỳ chọn includetiêu chuẩn củawebpack.
- 
    chế độchuỗi không bắt buộc Nếu bạn đặt thành "production" (phiên bản chính thức), thì một gói worker dịch vụ được tối ưu hoá sẽ được tạo, trong đó không bao gồm thông tin gỡ lỗi. Nếu không được định cấu hình rõ ràng tại đây, giá trị modeđược định cấu hình trong quá trình biên dịchwebpackhiện tại sẽ được sử dụng.
Phương thức
copyWorkboxLibraries()
workbox-build.copyWorkboxLibraries(
destDirectory: string,
): Promise<string>
Thao tác này sẽ sao chép một tập hợp thư viện thời gian chạy mà Workbox sử dụng vào một thư mục cục bộ. Thư mục này sẽ được triển khai cùng với tệp worker của dịch vụ.
Thay vì triển khai các bản sao cục bộ này, bạn có thể sử dụng Workbox từ URL CDN chính thức của Workbox.
Phương thức này được hiển thị để mang lại lợi ích cho các nhà phát triển sử dụng workbox-build.injectManifest và không muốn sử dụng bản sao CDN của Workbox. Nhà phát triển sử dụng workbox-build.generateSW không cần gọi phương thức này một cách rõ ràng.
Tham số
- 
    destDirectorychuỗi Đường dẫn đến thư mục mẹ mà trong đó thư mục mới của thư viện sẽ được tạo. 
Giá trị trả về
- 
            Promise<string> Tên của thư mục mới tạo. 
generateSW()
workbox-build.generateSW(
config: GenerateSWOptions,
): Promise<BuildResult>
Phương thức này tạo một danh sách URL để lưu vào bộ nhớ đệm trước, được gọi là "tệp kê khai lưu vào bộ nhớ đệm trước", dựa trên các tuỳ chọn mà bạn cung cấp.
Tệp này cũng chứa các tuỳ chọn bổ sung để định cấu hình hành vi của worker dịch vụ, chẳng hạn như mọi quy tắc runtimeCaching mà worker dịch vụ sẽ sử dụng.
Dựa trên tệp kê khai bộ nhớ đệm trước và cấu hình bổ sung, tệp này sẽ ghi một tệp worker dịch vụ sẵn sàng sử dụng vào ổ đĩa tại swDest.
// The following lists some common options; see the rest of the documentation
// for the full set of options and defaults.
const {count, size, warnings} = await generateSW({
  dontCacheBustURLsMatching: [new RegExp('...')],
  globDirectory: '...',
  globPatterns: ['...', '...'],
  maximumFileSizeToCacheInBytes: ...,
  navigateFallback: '...',
  runtimeCaching: [{
    // Routing via a matchCallback function:
    urlPattern: ({request, url}) => ...,
    handler: '...',
    options: {
      cacheName: '...',
      expiration: {
        maxEntries: ...,
      },
    },
  }, {
    // Routing via a RegExp:
    urlPattern: new RegExp('...'),
    handler: '...',
    options: {
      cacheName: '...',
      plugins: [..., ...],
    },
  }],
  skipWaiting: ...,
  swDest: '...',
});
Tham số
- 
    config
Giá trị trả về
- 
            Promise<BuildResult> 
getManifest()
workbox-build.getManifest(
config: GetManifestOptions,
): Promise<GetManifestResult>
Phương thức này trả về danh sách URL để lưu vào bộ nhớ đệm trước, được gọi là "tệp kê khai lưu vào bộ nhớ đệm trước", cùng với thông tin chi tiết về số lượng mục nhập và kích thước của các mục nhập đó, dựa trên các tuỳ chọn mà bạn cung cấp.
// The following lists some common options; see the rest of the documentation
// for the full set of options and defaults.
const {count, manifestEntries, size, warnings} = await getManifest({
  dontCacheBustURLsMatching: [new RegExp('...')],
  globDirectory: '...',
  globPatterns: ['...', '...'],
  maximumFileSizeToCacheInBytes: ...,
});
Tham số
- 
    config
Giá trị trả về
- 
            Promise<GetManifestResult> 
getModuleURL()
workbox-build.getModuleURL(
moduleName: string,
buildType: BuildType,
): string
Tham số
- 
    moduleNamechuỗi 
- 
    buildTypeBuildType 
Giá trị trả về
- 
            chuỗi 
injectManifest()
workbox-build.injectManifest(
config: InjectManifestOptions,
): Promise<BuildResult>
Phương thức này tạo một danh sách URL để lưu vào bộ nhớ đệm trước, được gọi là "tệp kê khai lưu vào bộ nhớ đệm trước", dựa trên các tuỳ chọn mà bạn cung cấp.
Tệp kê khai được chèn vào tệp swSrc và chuỗi phần giữ chỗ injectionPoint xác định vị trí của tệp kê khai trong tệp.
Tệp worker dịch vụ cuối cùng, với tệp kê khai được chèn, được ghi vào đĩa tại swDest.
Phương thức này sẽ không biên dịch hoặc đóng gói tệp swSrc; mà chỉ xử lý việc chèn tệp kê khai.
// The following lists some common options; see the rest of the documentation
// for the full set of options and defaults.
const {count, size, warnings} = await injectManifest({
  dontCacheBustURLsMatching: [new RegExp('...')],
  globDirectory: '...',
  globPatterns: ['...', '...'],
  maximumFileSizeToCacheInBytes: ...,
  swDest: '...',
  swSrc: '...',
});
Tham số
- 
    config
Giá trị trả về
- 
            Promise<BuildResult>