ওয়ার্কবক্স-বিল্ড

workbox-build মডিউলটি একটি নোড-ভিত্তিক বিল্ড প্রক্রিয়ার মধ্যে একীভূত হয় এবং একটি সম্পূর্ণ পরিষেবা কর্মী তৈরি করতে পারে, অথবা শুধুমাত্র প্রিক্যাশে সম্পদের একটি তালিকা তৈরি করতে পারে যা একটি বিদ্যমান পরিষেবা কর্মীর মধ্যে ব্যবহার করা যেতে পারে।

বেশিরভাগ বিকাশকারীরা যে দুটি মোড ব্যবহার করবে তা হল generateSW এবং injectManifest । নিম্নলিখিত প্রশ্নের উত্তর আপনাকে সঠিক মোড এবং ব্যবহার করার জন্য কনফিগারেশন চয়ন করতে সাহায্য করতে পারে।

কোন মোড ব্যবহার করতে হবে

generateSW

generateSW মোড আপনার জন্য একটি পরিষেবা কর্মী ফাইল তৈরি করে, কনফিগারেশন বিকল্পগুলির মাধ্যমে কাস্টমাইজ করা হয় এবং এটি ডিস্কে লিখে দেয়।

কখন generateSW ব্যবহার করবেন

  • আপনি ফাইল precache করতে চান.
  • আপনার সহজ রানটাইম ক্যাশিং প্রয়োজন আছে।

কখন generateSW ব্যবহার করবেন না

  • আপনি অন্যান্য পরিষেবা কর্মী বৈশিষ্ট্যগুলি (যেমন ওয়েব পুশ ) ব্যবহার করতে চান।
  • আপনি অতিরিক্ত স্ক্রিপ্ট আমদানি করতে চান, বা কাস্টম ক্যাশিং কৌশলগুলির জন্য অতিরিক্ত যুক্তি যোগ করতে চান।

injectManifest

injectManifest মোড precache করার জন্য URL-এর একটি তালিকা তৈরি করবে এবং সেই precache ম্যানিফেস্টটিকে একটি বিদ্যমান পরিষেবা কর্মী ফাইলে যুক্ত করবে। এটি অন্যথায় ফাইলটিকে যেমন-ই রেখে দেবে।

কখন injectManifest ব্যবহার করবেন

  • আপনি আপনার সেবা কর্মীর উপর আরো নিয়ন্ত্রণ চান.
  • আপনি ফাইল precache করতে চান.
  • আপনাকে রাউটিং এবং কৌশলগুলি কাস্টমাইজ করতে হবে।
  • আপনি আপনার পরিষেবা কর্মীকে অন্যান্য প্ল্যাটফর্ম বৈশিষ্ট্যগুলির সাথে ব্যবহার করতে চান (যেমন ওয়েব পুশ )।

যখন injectManifest ব্যবহার করবেন না

  • আপনি আপনার সাইটে একটি পরিষেবা কর্মী যোগ করার সবচেয়ে সহজ পথ চান.

এসডব্লিউ মোড generateSW

আপনি নোড-ভিত্তিক বিল্ড স্ক্রিপ্টের মধ্যে generateSW মোড ব্যবহার করতে পারেন, সবচেয়ে সাধারণ কনফিগারেশন বিকল্পগুলি ব্যবহার করে, যেমন:

// 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.`);
});

এটি আপনার কনফিগারেশন দ্বারা বাছাই করা সমস্ত ফাইলের জন্য প্রিক্যাচিং সেটআপ সহ একটি পরিষেবা কর্মী তৈরি করবে, এবং রানটাইম ক্যাশিং নিয়ম সরবরাহ করবে।

কনফিগারেশন বিকল্পগুলির একটি সম্পূর্ণ সেট রেফারেন্স ডকুমেন্টেশনে পাওয়া যাবে।

injectManifest মোড

আপনি একটি নোড-ভিত্তিক বিল্ড স্ক্রিপ্টের মধ্যে injectManifest মোড ব্যবহার করতে পারেন, সবচেয়ে সাধারণ কনফিগারেশন বিকল্পগুলি ব্যবহার করে, যেমন:

// 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.`);
});

এটি আপনার কনফিগারেশন দ্বারা বাছাই করা ফাইলগুলির উপর ভিত্তি করে একটি প্রিক্যাশ ম্যানিফেস্ট তৈরি করবে এবং এটি আপনার বিদ্যমান পরিষেবা কর্মী ফাইলে ইনজেক্ট করবে৷

কনফিগারেশন বিকল্পগুলির একটি সম্পূর্ণ সেট রেফারেন্স ডকুমেন্টেশনে পাওয়া যাবে।

অতিরিক্ত মোড

আমরা আশা করি যে generateSW বা injectManifest বেশিরভাগ ডেভেলপারদের প্রয়োজন অনুসারে হবে। যাইহোক, workbox-build দ্বারা সমর্থিত অন্য একটি মোড রয়েছে যা নির্দিষ্ট ব্যবহারের ক্ষেত্রে উপযুক্ত হতে পারে।

getManifest মোড

এটি ধারণাগতভাবে injectManifest মোডের অনুরূপ, কিন্তু উত্স পরিষেবা কর্মী ফাইলে ম্যানিফেস্ট যোগ করার পরিবর্তে, এটি এন্ট্রির সংখ্যা এবং মোট আকার সম্পর্কে তথ্য সহ ম্যানিফেস্ট এন্ট্রিগুলির অ্যারে প্রদান করে৷

আপনি একটি নোড-ভিত্তিক বিল্ড স্ক্রিপ্টের মধ্যে injectManifest মোড ব্যবহার করতে পারেন, সবচেয়ে সাধারণ কনফিগারেশন বিকল্পগুলি ব্যবহার করে, যেমন:

// 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.
});

কনফিগারেশন বিকল্পগুলির একটি সম্পূর্ণ সেট রেফারেন্স ডকুমেন্টেশনে পাওয়া যাবে।

প্রকারভেদ

BasePartial

বৈশিষ্ট্য

  • অতিরিক্ত ম্যানিফেস্ট এন্ট্রি

    (স্ট্রিং | ম্যানিফেস্ট এন্ট্রি )[] ঐচ্ছিক

    বিল্ড কনফিগারেশনের অংশ হিসাবে উত্পন্ন যেকোন এন্ট্রি ছাড়াও প্রিক্যাচ করা এন্ট্রিগুলির একটি তালিকা।

  • ক্যাচেবাস্ট ইউআরএল মিলছে না

    RegExp ঐচ্ছিক

    এর সাথে মেলে এমন সম্পদগুলিকে তাদের URL এর মাধ্যমে স্বতন্ত্রভাবে সংস্করণ করা হয়েছে বলে ধরে নেওয়া হবে এবং প্রিক্যাশে পপুলেট করার সময় করা সাধারণ HTTP ক্যাশে-বাস্টিং থেকে অব্যাহতি দেওয়া হবে। প্রয়োজন না হলেও, এটি সুপারিশ করা হয় যে যদি আপনার বিদ্যমান বিল্ড প্রক্রিয়া ইতিমধ্যেই প্রতিটি ফাইলনামে একটি [hash] মান সন্নিবেশ করে, আপনি একটি RegExp প্রদান করেন যা এটি সনাক্ত করবে, কারণ এটি প্রিক্যাচিং করার সময় ব্যান্ডউইথ খরচ কমিয়ে দেবে।

  • ম্যানিফেস্ট ট্রান্সফর্মস

    এক বা একাধিক ফাংশন যা জেনারেট করা ম্যানিফেস্টের বিপরীতে ক্রমানুসারে প্রয়োগ করা হবে। যদি modifyURLPrefix বা dontCacheBustURLsMatching ও নির্দিষ্ট করা থাকে, তাহলে তাদের সংশ্লিষ্ট রূপান্তরগুলি প্রথমে প্রয়োগ করা হবে।

  • MaxFileSizeToCacheInBytes

    সংখ্যা ঐচ্ছিক

    ডিফল্ট মান হল: 2097152

    এই মানটি প্রিক্যাচ করা ফাইলগুলির সর্বাধিক আকার নির্ধারণ করতে ব্যবহার করা যেতে পারে। এটি আপনাকে অসাবধানতাবশত আপনার প্যাটার্নগুলির একটির সাথে মিলে যেতে পারে এমন অনেক বড় ফাইলগুলিকে প্রিক্যাচ করা থেকে বাধা দেয়৷

  • modifyURLপ্রিফিক্স

    বস্তু ঐচ্ছিক

    একটি বস্তু ম্যাপিং স্ট্রিং প্রতিস্থাপন স্ট্রিং মান উপসর্গ. এটি ব্যবহার করা যেতে পারে, উদাহরণস্বরূপ, একটি ম্যানিফেস্ট এন্ট্রি থেকে একটি পাথ প্রিফিক্স অপসারণ বা যোগ করতে যদি আপনার ওয়েব হোস্টিং সেটআপ আপনার স্থানীয় ফাইল সিস্টেম সেটআপের সাথে মেলে না। আরও নমনীয়তার বিকল্প হিসাবে, আপনি manifestTransforms বিকল্পটি ব্যবহার করতে পারেন এবং এমন একটি ফাংশন প্রদান করতে পারেন যা ম্যানিফেস্টের এন্ট্রিগুলিকে আপনি যে যুক্তি প্রদান করেন তা ব্যবহার করে পরিবর্তন করে৷

    উদাহরণ ব্যবহার:

    // Replace a '/dist/' prefix with '/', and also prepend
    // '/static' to every URL.
    modifyURLPrefix: {
      '/dist/': '/',
      '': '/static',
    }
    

BuildResult

টাইপ

বাদ দিন< GetManifestResult "manifestEntry"
> এবং বস্তু

বৈশিষ্ট্য

  • ফাইলপাথ

    স্ট্রিং[]

GeneratePartial

বৈশিষ্ট্য

  • babelPresetEnvTargets

    স্ট্রিং[] ঐচ্ছিক

    ডিফল্ট মান হল: ["chrome >= 56"]

    পরিষেবা কর্মী বান্ডিল ট্রান্সপিল করার সময় babel-preset-env এ পাস করার লক্ষ্যগুলি

  • cacheId

    স্ট্রিং ঐচ্ছিক

    ক্যাশে নামের জন্য একটি ঐচ্ছিক আইডি প্রিপেন্ড করতে হবে। এটি প্রাথমিকভাবে স্থানীয় উন্নয়নের জন্য উপযোগী যেখানে একই http://localhost:port অরিজিন থেকে একাধিক সাইট পরিবেশিত হতে পারে।

  • ক্লিনআপ আউটডেটেড ক্যাশে

    বুলিয়ান ঐচ্ছিক

    ডিফল্ট মান হল: মিথ্যা

    ওয়ার্কবক্স পুরানো, বেমানান সংস্করণ দ্বারা তৈরি যে কোনো প্রিক্যাচ সনাক্ত এবং মুছে ফেলার চেষ্টা করা উচিত কিনা।

  • ক্লায়েন্ট দাবি

    বুলিয়ান ঐচ্ছিক

    ডিফল্ট মান হল: মিথ্যা

    পরিষেবা কর্মী যে কোনও বিদ্যমান ক্লায়েন্ট সক্রিয় হওয়ার সাথে সাথে নিয়ন্ত্রণ করা শুরু করা উচিত কিনা।

  • ডিরেক্টরি ইনডেক্স

    স্ট্রিং ঐচ্ছিক

    যদি একটি URL-এর জন্য একটি নেভিগেশন অনুরোধ যা শেষ হয় / একটি precached URL এর সাথে মেলে না, তাহলে এই মানটি URL-এর সাথে যুক্ত করা হবে এবং এটি একটি precache মিলের জন্য চেক করা হবে। এটি আপনার ওয়েব সার্ভার তার ডিরেক্টরি সূচী জন্য ব্যবহার করছে কি সেট করা উচিত.

  • ডিজেবল ডেভলগ

    বুলিয়ান ঐচ্ছিক

    ডিফল্ট মান হল: মিথ্যা

  • ignoreURL প্যারামিটার ম্যাচিং

    RegExp[] ঐচ্ছিক

    এই অ্যারের RegExp-এর একটির সাথে মেলে এমন যেকোন সার্চ প্যারামিটার নাম একটি precache মিল খোঁজার আগে সরিয়ে দেওয়া হবে। এটি উপযোগী যদি আপনার ব্যবহারকারীরা এমন URLগুলির অনুরোধ করতে পারে যাতে রয়েছে, উদাহরণস্বরূপ, ট্রাফিকের উত্স ট্র্যাক করতে ব্যবহৃত URL প্যারামিটার৷ প্রদান না করা হলে, ডিফল্ট মান হল [/^utm_/, /^fbclid$/]

  • আমদানি স্ক্রিপ্ট

    স্ট্রিং[] ঐচ্ছিক

    জাভাস্ক্রিপ্ট ফাইলগুলির একটি তালিকা যা জেনারেট করা পরিষেবা কর্মী ফাইলের ভিতরে importScripts() এ পাস করা উচিত। যখন আপনি ওয়ার্কবক্সকে আপনার শীর্ষ-স্তরের পরিষেবা কর্মী ফাইল তৈরি করতে দিতে চান, তবে কিছু অতিরিক্ত কোড অন্তর্ভুক্ত করতে চান, যেমন একটি পুশ ইভেন্ট লিসেনার।

  • ইনলাইন ওয়ার্কবক্স রানটাইম

    বুলিয়ান ঐচ্ছিক

    ডিফল্ট মান হল: মিথ্যা

    ওয়ার্কবক্স লাইব্রেরির জন্য রানটাইম কোডটি শীর্ষ-স্তরের পরিষেবা কর্মীর মধ্যে অন্তর্ভুক্ত করা উচিত, বা একটি পৃথক ফাইলে বিভক্ত করা উচিত যা পরিষেবা কর্মীর পাশাপাশি স্থাপন করা প্রয়োজন। রানটাইম আলাদা রাখার অর্থ হল যে প্রতিবার আপনার শীর্ষ-স্তরের পরিষেবা কর্মী পরিবর্তন করার সময় ব্যবহারকারীদের ওয়ার্কবক্স কোড পুনরায় ডাউনলোড করতে হবে না।

  • মোড

    স্ট্রিং ঐচ্ছিক

    ডিফল্ট মান হল: "উৎপাদন"

    যদি 'উৎপাদন'-এ সেট করা হয়, তাহলে একটি অপ্টিমাইজড পরিষেবা কর্মী বান্ডিল তৈরি করা হবে যা ডিবাগিং তথ্য বাদ দেয়। এখানে স্পষ্টভাবে কনফিগার করা না থাকলে, process.env.NODE_ENV মান ব্যবহার করা হবে, এবং তা ব্যর্থ হলে, এটি 'production' এ ফিরে যাবে।

  • নেভিগেট ফলব্যাক

    স্ট্রিং ঐচ্ছিক

    ডিফল্ট মান হল: null

    নির্দিষ্ট করা থাকলে, প্রিক্যাচ করা হয়নি এমন URLগুলির জন্য সমস্ত নেভিগেশন অনুরোধ প্রদত্ত URL-এ HTML দিয়ে পূরণ করা হবে। আপনাকে অবশ্যই একটি HTML নথির URL পাস করতে হবে যা আপনার precache ম্যানিফেস্টে তালিকাভুক্ত। এটি একটি একক পৃষ্ঠা অ্যাপ দৃশ্যে ব্যবহার করার জন্য বোঝানো হয়েছে, যেখানে আপনি সমস্ত নেভিগেশন সাধারণ অ্যাপ শেল HTML ব্যবহার করতে চান।

  • নেভিগেটFallbackAllowlist

    RegExp[] ঐচ্ছিক

    রেগুলার এক্সপ্রেশনের একটি ঐচ্ছিক বিন্যাস যা কনফিগার করা navigateFallback আচরণ কোন ইউআরএলে প্রযোজ্য তা সীমাবদ্ধ করে। এটি উপযোগী যদি শুধুমাত্র আপনার সাইটের URL-এর একটি উপসেটকে একটি একক পৃষ্ঠা অ্যাপের অংশ হিসাবে বিবেচনা করা হয়। যদি navigateFallbackDenylist এবং navigateFallbackAllowlist উভয়ই কনফিগার করা থাকে, তবে অস্বীকারকারী নজির নেয়।

    দ্রষ্টব্য : একটি নেভিগেশন চলাকালীন প্রতিটি গন্তব্য URL এর বিপরীতে এই RegExps মূল্যায়ন করা হতে পারে। জটিল RegExps ব্যবহার করা এড়িয়ে চলুন, অন্যথায় আপনার ব্যবহারকারীরা আপনার সাইটে নেভিগেট করার সময় বিলম্ব দেখতে পাবেন।

  • নেভিগেট ফলব্যাকডেনিলিস্ট

    RegExp[] ঐচ্ছিক

    রেগুলার এক্সপ্রেশনের একটি ঐচ্ছিক বিন্যাস যা কনফিগার করা navigateFallback আচরণ কোন ইউআরএলে প্রযোজ্য তা সীমাবদ্ধ করে। এটি উপযোগী যদি শুধুমাত্র আপনার সাইটের URL-এর একটি উপসেটকে একটি একক পৃষ্ঠা অ্যাপের অংশ হিসাবে বিবেচনা করা হয়। যদি navigateFallbackDenylist এবং navigateFallbackAllowlist উভয়ই কনফিগার করা থাকে, তবে অস্বীকারকারী অগ্রাধিকার নেয়।

    দ্রষ্টব্য : একটি নেভিগেশন চলাকালীন প্রতিটি গন্তব্য URL এর বিপরীতে এই RegExps মূল্যায়ন করা হতে পারে। জটিল RegExps ব্যবহার করা এড়িয়ে চলুন, অন্যথায় আপনার ব্যবহারকারীরা আপনার সাইটে নেভিগেট করার সময় বিলম্ব দেখতে পাবেন।

  • নেভিগেশনপ্রিলোড

    বুলিয়ান ঐচ্ছিক

    ডিফল্ট মান হল: মিথ্যা

    জেনারেটেড সার্ভিস ওয়ার্কারে নেভিগেশন প্রিলোড সক্ষম করবেন কি না। সত্য হিসাবে সেট করা হলে, আপনাকে অবশ্যই একটি উপযুক্ত প্রতিক্রিয়া কৌশল সেট আপ করতে runtimeCaching ব্যবহার করতে হবে যা নেভিগেশন অনুরোধের সাথে মেলে এবং প্রিলোড করা প্রতিক্রিয়া ব্যবহার করবে।

  • অফলাইন GoogleAnalytics

    বুলিয়ান | GoogleAnalyticsInitializeOptions ঐচ্ছিক

    ডিফল্ট মান হল: মিথ্যা

    অফলাইন Google Analytics- এর জন্য সমর্থন অন্তর্ভুক্ত করতে হবে কিনা তা নিয়ন্ত্রণ করে। true হলে, workbox-google-analytics initialize() কলটি আপনার জেনারেট করা সার্ভিস ওয়ার্কারে যোগ করা হবে। একটি Object সেট করা হলে, সেই অবজেক্টটি initialize() কলে পাস করা হবে, যা আপনাকে আচরণটি কাস্টমাইজ করতে দেয়।

  • রানটাইম ক্যাচিং

    RuntimeCaching [] ঐচ্ছিক

    আপনার পরিষেবা কর্মী তৈরি করতে ওয়ার্কবক্সের বিল্ড টুল ব্যবহার করার সময়, আপনি এক বা একাধিক রানটাইম ক্যাশিং কনফিগারেশন নির্দিষ্ট করতে পারেন। এইগুলি তারপর আপনার সংজ্ঞায়িত ম্যাচ এবং হ্যান্ডলার কনফিগারেশন ব্যবহার করে workbox-routing.registerRoute কলগুলিতে অনুবাদ করা হয়।

    সমস্ত বিকল্পের জন্য, workbox-build.RuntimeCaching ডকুমেন্টেশন দেখুন। নীচের উদাহরণটি দুটি রানটাইম রুট সংজ্ঞায়িত সহ একটি সাধারণ কনফিগারেশন দেখায়:

  • অপেক্ষা করা বাদ দিন

    বুলিয়ান ঐচ্ছিক

    ডিফল্ট মান হল: মিথ্যা

    উত্পন্ন পরিষেবা কর্মীকে skipWaiting() এ একটি নিঃশর্ত কল যোগ করতে হবে কিনা। যদি false , তাহলে এর পরিবর্তে একজন message শ্রোতা যোগ করা হবে, ক্লায়েন্ট পৃষ্ঠাগুলিকে postMessage({type: 'SKIP_WAITING'}) কল করে skipWaiting() ট্রিগার করার অনুমতি দেয় একজন অপেক্ষমাণ পরিষেবা কর্মীকে।

  • উত্সম্যাপ

    বুলিয়ান ঐচ্ছিক

    ডিফল্ট মান হল: সত্য

    উত্পন্ন পরিষেবা কর্মী ফাইলগুলির জন্য একটি উত্সম্যাপ তৈরি করা হবে কিনা।

GenerateSWOptions

GetManifestOptions

GetManifestResult

বৈশিষ্ট্য

GlobPartial

বৈশিষ্ট্য

  • globঅনুসরণ করুন

    বুলিয়ান ঐচ্ছিক

    ডিফল্ট মান হল: সত্য

    precache ম্যানিফেস্ট তৈরি করার সময় সিমলিংক অনুসরণ করা হয় কিনা তা নির্ধারণ করে। আরও তথ্যের জন্য, glob ডকুমেন্টেশনে follow সংজ্ঞা দেখুন।

  • গ্লোব উপেক্ষা করে

    স্ট্রিং[] ঐচ্ছিক

    ডিফল্ট মান হল: ["**\/node_modules\/**\/*"]

    precache ম্যানিফেস্ট তৈরি করার সময় সর্বদা বাদ দেওয়ার জন্য ফাইলের সাথে মিলে যাওয়া প্যাটার্নগুলির একটি সেট৷ আরও তথ্যের জন্য, glob ডকুমেন্টেশনে ignore সংজ্ঞা দেখুন।

  • গ্লোব প্যাটার্নস

    স্ট্রিং[] ঐচ্ছিক

    ডিফল্ট মান হল: ["**\/*.{js,wasm,css,html}"]

    এই প্যাটার্নগুলির যেকোনো একটির সাথে মিলে যাওয়া ফাইলগুলিকে প্রিক্যাশে ম্যানিফেস্টে অন্তর্ভুক্ত করা হবে। আরও তথ্যের জন্য, glob প্রাইমার দেখুন।

  • globStrict

    বুলিয়ান ঐচ্ছিক

    ডিফল্ট মান হল: সত্য

    সত্য হলে, একটি precache ম্যানিফেস্ট তৈরি করার সময় একটি ডিরেক্টরি পড়ার ত্রুটি বিল্ড ব্যর্থ হবে। মিথ্যা হলে, সমস্যাযুক্ত ডিরেক্টরিটি এড়িয়ে যাবে। আরও তথ্যের জন্য, glob ডকুমেন্টেশনে strict সংজ্ঞা দেখুন।

  • টেমপ্লেটেড ইউআরএল

    বস্তু ঐচ্ছিক

    যদি একটি URL কিছু সার্ভার-সাইড যুক্তির উপর ভিত্তি করে রেন্ডার করা হয়, তবে এর বিষয়বস্তু একাধিক ফাইল বা অন্য কিছু অনন্য স্ট্রিং মানের উপর নির্ভর করতে পারে। এই বস্তুর কীগুলি হল সার্ভার-রেন্ডার করা URL৷ যদি মানগুলি স্ট্রিংগুলির একটি অ্যারে হয় তবে সেগুলিকে glob প্যাটার্ন হিসাবে ব্যাখ্যা করা হবে এবং প্যাটার্নগুলির সাথে মিলে যাওয়া যেকোন ফাইলের বিষয়বস্তু ইউআরএলের অনন্য সংস্করণ করতে ব্যবহার করা হবে৷ যদি একটি একক স্ট্রিং ব্যবহার করা হয়, তাহলে এটিকে অনন্য সংস্করণ তথ্য হিসাবে ব্যাখ্যা করা হবে যা আপনি একটি প্রদত্ত URL এর জন্য তৈরি করেছেন৷

InjectManifestOptions

InjectPartial

বৈশিষ্ট্য

  • ইনজেকশন পয়েন্ট

    স্ট্রিং ঐচ্ছিক

    ডিফল্ট মান হল: "self.__WB_MANIFEST"

    swSrc ফাইলের ভিতরে খোঁজার জন্য স্ট্রিং। একবার পাওয়া গেলে, এটি তৈরি করা precache ম্যানিফেস্ট দ্বারা প্রতিস্থাপিত হবে।

  • swSrc

    স্ট্রিং

    পরিষেবা কর্মী ফাইলের পাথ এবং ফাইলের নাম যা বিল্ড প্রক্রিয়া চলাকালীন পড়া হবে, বর্তমান কার্যকারী ডিরেক্টরির সাথে সম্পর্কিত।

ManifestEntry

বৈশিষ্ট্য

  • সততা

    স্ট্রিং ঐচ্ছিক

  • পুনর্বিবেচনা

    স্ট্রিং

  • url

    স্ট্রিং

ManifestTransform()

workbox-build.ManifestTransform(
  manifestEntries: (ManifestEntry & object)[],
  compilation?: unknown,
)

টাইপ

ফাংশন

পরামিতি

রিটার্নস

ManifestTransformResult

বৈশিষ্ট্য

OptionalGlobDirectoryPartial

বৈশিষ্ট্য

  • globDirectory

    স্ট্রিং ঐচ্ছিক

    আপনি যে স্থানীয় ডিরেক্টরির সাথে globPatterns এর সাথে মেলাতে চান। পাথ বর্তমান ডিরেক্টরির সাথে আপেক্ষিক।

RequiredGlobDirectoryPartial

বৈশিষ্ট্য

  • globDirectory

    স্ট্রিং

    আপনি যে স্থানীয় ডিরেক্টরির সাথে globPatterns এর সাথে মেলাতে চান। পাথ বর্তমান ডিরেক্টরির সাথে আপেক্ষিক।

RequiredSWDestPartial

বৈশিষ্ট্য

  • swDest

    স্ট্রিং

    পরিষেবা কর্মী ফাইলের পাথ এবং ফাইলের নাম যা বর্তমান কার্যকারী ডিরেক্টরির সাথে সম্পর্কিত বিল্ড প্রক্রিয়া দ্বারা তৈরি করা হবে। এটি অবশ্যই '.js'-এ শেষ হবে।

RuntimeCaching

বৈশিষ্ট্য

  • এটি নির্ধারণ করে কিভাবে রানটাইম রুট একটি প্রতিক্রিয়া তৈরি করবে। অন্তর্নির্মিত workbox-strategies একটি ব্যবহার করতে, এর নাম প্রদান করুন, যেমন 'NetworkFirst' । বিকল্পভাবে, এটি একটি workbox-core.RouteHandler হতে পারে। কাস্টম প্রতিক্রিয়া যুক্তি সহ রুটহ্যান্ডলার কলব্যাক ফাংশন।

  • পদ্ধতি

    HTTP পদ্ধতি ঐচ্ছিক

    ডিফল্ট মান হল: "GET"

    HTTP পদ্ধতির সাথে মেলে। 'GET' এর ডিফল্ট মান সাধারণত যথেষ্ট, যদি না আপনি স্পষ্টভাবে 'POST' , 'PUT' বা অন্য ধরনের অনুরোধের সাথে মিল করতে চান।

  • বিকল্প

    বস্তু ঐচ্ছিক

    • ব্যাকগ্রাউন্ড সিঙ্ক

      বস্তু ঐচ্ছিক

      এটি কনফিগার করা handler কনফিগার করা workbox-strategies একটি workbox-background-sync.BackgroundSyncPlugin । ব্যাকগ্রাউন্ডসিঙ্কপ্লাগইন ইনস্ট্যান্স যোগ করবে।

      • নাম

        স্ট্রিং

      • বিকল্প

        QueueOptions ঐচ্ছিক

    • ব্রডকাস্ট আপডেট

      বস্তু ঐচ্ছিক

      এটি কনফিগার করা handler কনফিগার করা workbox-strategies একটি workbox-broadcast-update.BroadcastUpdatePlugin । ব্রডকাস্টআপডেট প্লাগইন উদাহরণ যোগ করবে।

    • cacheName

      স্ট্রিং ঐচ্ছিক

      প্রদান করা হলে, এটি handler কনফিগার করা workbox-strategies cacheName বৈশিষ্ট্য সেট করবে।

    • ক্যাশেযোগ্য প্রতিক্রিয়া

      CacheableResponseOptions ঐচ্ছিক

      এটি কনফিগার করা handler কনফিগার করা workbox-strategies একটি workbox-cacheable-response.CacheableResponsePlugin যোগ করবে।

    • মেয়াদ

      এটি কনফিগার করা হলে handler কনফিগার করা workbox-strategies একটি workbox-expiration.ExpirationPlugin যোগ হবে।

    • ফেচ অপশন

      RequestInit ঐচ্ছিক

      এটি কনফিগার করা handler কনফিগার করা workbox-strategies fetchOptions মান বরাবর চলে যাবে।

    • ম্যাচ অপশন

      CacheQueryOptions ঐচ্ছিক

      এটি কনফিগার করা হলে তা handler কনফিগার করা workbox-strategies matchOptions মান বরাবর চলে যাবে।

    • নেটওয়ার্ক টাইমআউট সেকেন্ড

      সংখ্যা ঐচ্ছিক

      প্রদান করা হলে, এটি handler কনফিগার করা workbox-strategies networkTimeoutSeconds বৈশিষ্ট্য সেট করবে। মনে রাখবেন যে শুধুমাত্র 'NetworkFirst' এবং 'NetworkOnly' networkTimeoutSeconds সমর্থন করে।

    • প্লাগইন

      WorkboxPlugin [] ঐচ্ছিক

      এটি কনফিগার করা এক বা একাধিক ওয়ার্কবক্স প্লাগইন ব্যবহার করার অনুমতি দেয় যেখানে "শর্টকাট" বিকল্প নেই (যেমন workbox-expiration.ExpirationPlugin expiration । এক্সপিরেশন প্লাগইন)। এখানে দেওয়া প্লাগইনগুলি handler কনফিগার করা workbox-strategies যোগ করা হবে।

    • precacheFallback

      বস্তু ঐচ্ছিক

      এটি কনফিগার করা হলে handler কনফিগার করা workbox-strategies একটি workbox-precaching.PrecacheFallbackPlugin যুক্ত হবে।

      • fallbackURL

        স্ট্রিং

    • রেঞ্জের অনুরোধ

      বুলিয়ান ঐচ্ছিক

      এটি সক্ষম করলে handler কনফিগার করা workbox-strategies একটি workbox-range-requests.RangeRequestsPlugin যোগ হবে।

  • url প্যাটার্ন

    স্ট্রিং | RegExp | RouteMatchCallback

    এই মিলের মানদণ্ড নির্ধারণ করে যে কনফিগার করা হ্যান্ডলার এমন কোনও অনুরোধের জন্য একটি প্রতিক্রিয়া তৈরি করবে যা পূর্বক্যাচ করা URLগুলির একটির সাথে মেলে না৷ যদি একাধিক RuntimeCaching রুট সংজ্ঞায়িত করা হয়, তাহলে প্রথমটি যার urlPattern মেলে যেটি প্রতিক্রিয়া জানাবে।

    এই মানটি workbox-routing.registerRoute এ পাস করা প্রথম প্যারামিটারে সরাসরি ম্যাপ করে। সর্বাধিক নমনীয়তার জন্য একটি workbox-core.RouteMatchCallback ফাংশন ব্যবহার করার পরামর্শ দেওয়া হচ্ছে৷

StrategyName

এনাম

"ক্যাশে ফার্স্ট"

"শুধুমাত্র ক্যাশে"

"নেটওয়ার্ক ফার্স্ট"

"শুধুমাত্র নেটওয়ার্ক"

"StaleWhileRevalidate"

WebpackGenerateSWOptions

WebpackGenerateSWPartial

বৈশিষ্ট্য

  • importScriptsViaChunks

    স্ট্রিং[] ঐচ্ছিক

    ওয়েবপ্যাক খণ্ডের এক বা একাধিক নাম। সেই অংশগুলির বিষয়বস্তু importScripts() এ কলের মাধ্যমে জেনারেট করা পরিষেবা কর্মীতে অন্তর্ভুক্ত করা হবে।

  • swDest

    স্ট্রিং ঐচ্ছিক

    ডিফল্ট মান হল: "service-worker.js"

    এই প্লাগইন দ্বারা তৈরি পরিষেবা কর্মী ফাইলের সম্পদের নাম।

WebpackInjectManifestOptions

WebpackInjectManifestPartial

বৈশিষ্ট্য

  • compileSrc

    বুলিয়ান ঐচ্ছিক

    ডিফল্ট মান হল: সত্য

    true হলে (ডিফল্ট), swSrc ফাইলটি ওয়েবপ্যাক দ্বারা কম্পাইল করা হবে। false হলে, সংকলন ঘটবে না (এবং webpackCompilationPlugins ব্যবহার করা যাবে না।) আপনি যদি ম্যানিফেস্টটিকে একটি JSON ফাইলে ইনজেক্ট করতে চান তাহলে false সেট করুন।

  • swDest

    স্ট্রিং ঐচ্ছিক

    পরিষেবা কর্মী ফাইলের সম্পদের নাম যা এই প্লাগইন দ্বারা তৈরি করা হবে। যদি বাদ দেওয়া হয়, নামটি swSrc নামের উপর ভিত্তি করে হবে।

  • webpackCompilationPlugins

    যেকোনো[] ঐচ্ছিক

    ঐচ্ছিক webpack প্লাগইন যা swSrc ইনপুট ফাইল কম্পাইল করার সময় ব্যবহার করা হবে। compileSrc true হলেই বৈধ।

WebpackPartial

বৈশিষ্ট্য

  • খণ্ড

    স্ট্রিং[] ঐচ্ছিক

    এক বা একাধিক খণ্ডের নাম যার সংশ্লিষ্ট আউটপুট ফাইলগুলি প্রিক্যাচে ম্যানিফেস্টে অন্তর্ভুক্ত করা উচিত।

  • বাদ

    (স্ট্রিং | RegExp | ফাংশন)[] ঐচ্ছিক৷

    precache ম্যানিফেস্ট থেকে সম্পদ বাদ দিতে ব্যবহৃত এক বা একাধিক স্পেসিফায়ার। এটি webpack স্ট্যান্ডার্ড exclude বিকল্পের মতো একই নিয়ম অনুসরণ করে ব্যাখ্যা করা হয়। প্রদান না করা হলে, ডিফল্ট মান হল [/\.map$/, /^manifest.*\.js$]

  • খণ্ডগুলি বাদ দিন

    স্ট্রিং[] ঐচ্ছিক

    এক বা একাধিক খণ্ডের নাম যার সংশ্লিষ্ট আউটপুট ফাইলগুলিকে precache ম্যানিফেস্ট থেকে বাদ দেওয়া উচিত৷

  • অন্তর্ভুক্ত

    (স্ট্রিং | RegExp | ফাংশন)[] ঐচ্ছিক৷

    precache ম্যানিফেস্টে সম্পদ অন্তর্ভুক্ত করতে ব্যবহৃত এক বা একাধিক স্পেসিফায়ার। এটি webpack স্ট্যান্ডার্ড include বিকল্পের মতো একই নিয়ম অনুসরণ করে ব্যাখ্যা করা হয়।

  • মোড

    স্ট্রিং ঐচ্ছিক

    যদি 'উৎপাদন'-এ সেট করা হয়, তাহলে একটি অপ্টিমাইজড পরিষেবা কর্মী বান্ডিল তৈরি করা হবে যা ডিবাগিং তথ্য বাদ দেয়। এখানে স্পষ্টভাবে কনফিগার করা না থাকলে, বর্তমান webpack সংকলনে কনফিগার করা mode মান ব্যবহার করা হবে।

পদ্ধতি

copyWorkboxLibraries()

workbox-build.copyWorkboxLibraries(
  destDirectory: string,
)

এটি একটি স্থানীয় ডিরেক্টরিতে Workbox দ্বারা ব্যবহৃত রানটাইম লাইব্রেরির একটি সেটের উপর কপি করে, যা আপনার পরিষেবা কর্মী ফাইলের পাশাপাশি স্থাপন করা উচিত।

এই স্থানীয় অনুলিপিগুলি স্থাপনের বিকল্প হিসাবে, আপনি পরিবর্তে এর অফিসিয়াল CDN URL থেকে Workbox ব্যবহার করতে পারেন৷

এই পদ্ধতিটি workbox-build.injectManifest ব্যবহারকারী ডেভেলপারদের সুবিধার জন্য উন্মুক্ত করা হয়েছে যারা ওয়ার্কবক্সের CDN কপি ব্যবহার করতে পছন্দ করবেন না। workbox-build.generateSW ব্যবহার করে ডেভেলপারদের এই পদ্ধতিটিকে স্পষ্টভাবে কল করার দরকার নেই।

পরামিতি

  • destDirectory

    স্ট্রিং

    মূল ডিরেক্টরির পথ যার অধীনে লাইব্রেরির নতুন ডিরেক্টরি তৈরি করা হবে।

রিটার্নস

  • প্রতিশ্রুতি<string>

    নতুন তৈরি ডিরেক্টরির নাম।

generateSW()

workbox-build.generateSW(
  config: GenerateSWOptions,
)

এই পদ্ধতিটি আপনার প্রদত্ত বিকল্পগুলির উপর ভিত্তি করে প্রিক্যাশে ইউআরএলগুলির একটি তালিকা তৈরি করে, যাকে "প্রিক্যাশ ম্যানিফেস্ট" হিসাবে উল্লেখ করা হয়।

এটি অতিরিক্ত বিকল্পগুলিও নেয় যা পরিষেবা কর্মীর আচরণ কনফিগার করে, যেমন এটি ব্যবহার করা উচিত যে কোনও runtimeCaching নিয়ম।

precache ম্যানিফেস্ট এবং অতিরিক্ত কনফিগারেশনের উপর ভিত্তি করে, এটি 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: '...',
});

পরামিতি

রিটার্নস

getManifest()

workbox-build.getManifest(
  config: GetManifestOptions,
)

এই পদ্ধতিটি আপনার প্রদত্ত বিকল্পগুলির উপর ভিত্তি করে এন্ট্রির সংখ্যা এবং তাদের আকার সম্পর্কে বিশদ সহ প্রিক্যাশে ইউআরএলগুলির একটি তালিকা প্রদান করে, যাকে "প্রিক্যাশে ম্যানিফেস্ট" হিসাবে উল্লেখ করা হয়।

// 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: ...,
});

পরামিতি

রিটার্নস

getModuleURL()

workbox-build.getModuleURL(
  moduleName: string,
  buildType: BuildType,
)

পরামিতি

  • মডিউল নাম

    স্ট্রিং

  • বিল্ড টাইপ

    বিল্ড টাইপ

রিটার্নস

  • স্ট্রিং

injectManifest()

workbox-build.injectManifest(
  config: InjectManifestOptions,
)

এই পদ্ধতিটি আপনার প্রদত্ত বিকল্পগুলির উপর ভিত্তি করে প্রিক্যাশে ইউআরএলগুলির একটি তালিকা তৈরি করে, যাকে "প্রিক্যাশ ম্যানিফেস্ট" হিসাবে উল্লেখ করা হয়।

ম্যানিফেস্টটি swSrc ফাইলে ইনজেকশন করা হয়, এবং স্থানধারক স্ট্রিং injectionPoint নির্ধারণ করে যে ফাইলটিতে ম্যানিফেস্টটি কোথায় যাবে।

চূড়ান্ত পরিষেবা কর্মী ফাইল, ম্যানিফেস্ট ইনজেকশন সহ, swDest এ ডিস্কে লেখা হয়।

এই পদ্ধতিটি আপনার swSrc ফাইল কম্পাইল বা বান্ডেল করবে না; এটা শুধু ম্যানিফেস্ট ইনজেকশন পরিচালনা করে.

// 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: '...',
});

পরামিতি

রিটার্নস