ProvidePlugin

يحمّل modules تلقائيًا بدل الحاجة إلى كتابة import أو require لها في كل ملف.

new webpack.ProvidePlugin({
  identifier: "module1",
  // ...
});

أو

new webpack.ProvidePlugin({
  identifier: ["module1", "property1"],
  // ...
});

بشكل افتراضي، يتم حل module من المجلد الحالي ./** ومن node_modules.

يمكنك أيضًا تحديد مسار كامل:

import path from "node:path";
import { fileURLToPath } from "node:url";

const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);

new webpack.ProvidePlugin({
  identifier: path.resolve(path.join(__dirname, "src/module1")),
  // ...
});

عندما يصادف webpack identifier كمتغير حر داخل module، يحمّل module المحدد تلقائيًا ويملأ identifier بصادرات ذلك module. ويمكنك تحديد property معينة لدعم named exports.

لاستيراد default export من ES2015 module، يجب تحديد الخاصية default في module.

الاستخدام: jQuery

لتحميل jquery تلقائيًا، وجّه المتغيرين $ وjQuery إلى module الخاص بـ jquery:

new webpack.ProvidePlugin({
  $: "jquery",
  jQuery: "jquery",
});

ثم في أي مكان داخل الكود المصدري:

// داخل module
$("#item"); // <= يعمل
jQuery("#item"); // <= يعمل أيضًا
// يتم توفير $ تلقائيًا من exports الخاصة بـ "jquery"

الاستخدام: jQuery مع Angular 1

يبحث Angular عن window.jQuery ليحدد هل jQuery موجودة أم لا. راجع الكود المصدري.

new webpack.ProvidePlugin({
  "window.jQuery": "jquery",
});

الاستخدام: Lodash Map

new webpack.ProvidePlugin({
  _map: ["lodash", "map"],
});

الاستخدام: Vue.js

new webpack.ProvidePlugin({
  Vue: ["vue/dist/vue.esm.js", "default"],
});
Edit this page·

2 Contributors

MohaDev-69RlxChap2