HashedModuleIdsPlugin

يجعل هذا plugin قيمة hash مبنية على المسار النسبي للـ module، ثم يستخدم سلسلة من أربعة أحرف كمعرّف للـ module. يُنصح باستخدامه في بيئة الإنتاج.

new webpack.ids.HashedModuleIdsPlugin({
  // Options...
});

الخيارات

يدعم هذا plugin الخيارات التالية:

  • context: مجلد السياق (مسار مطلق) الذي تُنشأ منه الأسماء.

  • hashFunction: خوارزمية hashing المستخدمة، والقيمة الافتراضية هي 'md4'. يدعم webpack كل الدوال المتاحة في crypto.createHash في Node.js.

  • hashDigest: الترميز المستخدم عند إنشاء hash، والقيمة الافتراضية هي 'base64'. يدعم webpack كل الترميزات المتاحة في hash.digest في Node.js.

    5.104.0+

    بالإضافة إلى ترميزات Node.js القياسية، يدعم webpack خوارزميات digest مخصصة: 'base64url' و'base62' و'base58' و'base52' و'base49' و'base36' و'base32' و'base25'. تفيد هذه الخيارات عندما تريد قيم hash أقصر أو آمنة للاستخدام داخل URLs.

  • hashDigestLength: طول الجزء المأخوذ من بداية hash digest، والقيمة الافتراضية هي 4. قد تكون بعض المعرفات الناتجة أطول من هذه القيمة لتجنب تكرار module ids.

الاستخدام

هذا مثال على طريقة استخدام plugin:

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

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

new webpack.ids.HashedModuleIdsPlugin({
  context: __dirname,
  hashFunction: "sha256",
  hashDigest: "hex",
  hashDigestLength: 20,
});

استخدام ترميز آمن داخل URL (5.104.0+):

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

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

new webpack.ids.HashedModuleIdsPlugin({
  context: __dirname,
  hashFunction: "md4",
  hashDigest: "base64url", // URL-safe encoding
  hashDigestLength: 8,
});
·تعديل هذه الصفحة

1 مساهم

RlxChap2