HashedModuleIdsPlugin
يجعل هذا plugin قيمة hash مبنية على المسار النسبي للـ module، ثم يستخدم سلسلة من أربعة أحرف كمعرّف للـ module. يُنصح باستخدامه في بيئة الإنتاج.
new webpack.ids.HashedModuleIdsPlugin({
// Options...
});الخيارات
يدعم هذا plugin الخيارات التالية:
-
context: مجلد السياق (مسار مطلق) الذي تُنشأ منه الأسماء. -
hashFunction: خوارزمية hashing المستخدمة، والقيمة الافتراضية هي'md4'. يدعم webpack كل الدوال المتاحة فيcrypto.createHashفي Node.js. -
5.104.0+hashDigest: الترميز المستخدم عند إنشاء hash، والقيمة الافتراضية هي'base64'. يدعم webpack كل الترميزات المتاحة فيhash.digestفي Node.js.بالإضافة إلى ترميزات 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,
});


