path.resolve()
تحويل أجزاء مسار لمسار مطلق path.resolve()
path.resolve() تحوّل سلسلة أجزاء مسار إلى مسار مطلق واحد، بمعالجتها من اليمين لليسار حتى تصل لمسار مطلق.
path.resolve() تمرّ على الأجزاء الممرَّرة من اليمين لليسار، وتُلحق كل جزء بسابقه حتى تبني مسارًا مطلقًا كاملًا. إذا ظهر جزء يبدأ بمسار مطلق أثناء المعالجة، تتوقف resolve عن النظر لما قبله وتعتبره نقطة البداية. إن لم يصادف أي جزء مطلقًا في القائمة، تستخدم مجلد العمل الحالي (process.cwd()) كنقطة بداية.
بعكس join، النتيجة دائمًا مسار مطلق — هذا الفرق الجوهري بينهما.
الصياغة
path.resolve(...paths)
📄 مثال
const path = require('node:path');
console.log(path.resolve('/foo/bar', './baz'));
// '/foo/bar/baz'
console.log(path.resolve('/foo/bar', '/tmp/file'));
// '/tmp/file' — المسار المطلق الأخير يتجاهل كل ما قبله
console.log(path.resolve('data', 'users'));
// مسار مطلق بالاعتماد على مجلد العمل الحالي، مثلًا:
// '/home/ali/project/data/users'أهم المعاملات
| المعامل | الوظيفة |
|---|---|
| ...paths | أجزاء المسار — تُعالَج من اليمين لليسار حتى مسار مطلق |
💡 نصائح عملية
- استخدمها مع __dirname (أو import.meta.dirname بـ ESM) لبناء مسار مطلق موثوق بغض النظر عن مجلد التشغيل الحالي
- لو تحتاج مسارًا مضمون الإطلاق (لقراءة ملف إعدادات مثلًا) استخدم resolve لا join
⚠️ أخطاء شائعة
- الخلط بينها وبين join: resolve تتجاهل كل الأجزاء السابقة فور ظهور جزء يبدأ بـ / بمنتصف القائمة
- افتراض أن الناتج ثابت دائمًا رغم أن الاعتماد على process.cwd() يجعل الناتج يتغيّر حسب مكان تشغيل الأمر
خصائص ذات صلة
🎓 تريد فهم الصورة الكاملة خطوة بخطوة؟ ابدأ من مسار NODEJS الكامل بالعربي.