# pnpm 12 يصدر بقدرة على تنزيل مديري الحزم الآخرين وبملف lockfile ثابت

> **المغزى:** جزء كبير من مشكلة يعمل على جهازي ولا يعمل على الـ CI سببه ملف lockfile يتغير دون تغيير حقيقي، والإصدار الجديد يعالج هذا السبب تحديدًا.

- المصدر: المغزى (https://almaghza.com/a/2026-08-27-pnpm-12-installs-package-managers/)
- التاريخ: 14 ربيع الأول - 27 أغسطس 2026 (2026-08-27)
- القسم: برمجيات
- الوسوم: pnpm، npm، JavaScript، CI/CD، أدوات المطورين

نُشر الإصدار 12.0.0 من pnpm على npm في 26 أغسطس 2026. وأبرز ما فيه أن pnpm صار قادرًا على تنزيل مديري الحزم الآخرين وتشغيلهم بنفسه: npm وYarn Classic وYarn Berry وBun. فالأمر pnx yarn@4 install مثلًا ينزّل Yarn 4 الحقيقي ويشغّله، لا حزمة على npm تحمل اسم yarn.

والمشكلة التي يعالجها ذلك تظهر حين يعتمد مشروع على dependency قادمة من git، ويكون مستودعها مبنيًا بـ Yarn ويحتوي على yarn.lock. ففي السابق كانت تُجهَّز بأي مدير حزم موجود على الجهاز، وقد يقرأ Yarn Berry ملف lockfile كُتب بـ Yarn Classic، فتظهر أخطاء يصعب تتبعها. أما الآن فيقرأ pnpm قيمة packageManager المحددة في الـ dependency نفسها، وينزّل الأداة التي تطلبها بالضبط.

وفي الإصدار بند آخر أهم لمن يعتمد على CI: صار الـ lockfile حتميًا (deterministic). ففي السابق كان ترتيب الـ dependencies يغيّر الملف الناتج، فيظهر diff بعد install جديد دون أي تغيير فعلي. وبحسب ملاحظات الإصدار، صار الـ dependency graph نفسه ينتج ملفًا متطابقًا byte بـ byte، وصارت معالجة الـ peer dependencies أسرع بمرتين إلى ثلاث مرات مع استهلاك ذاكرة أقل بنحو 25%، خاصة في الـ workspaces الكبيرة التي تكثر فيها الـ dependency cycles.

كما صار الـ store يُنشأ داخل node_modules الخاص بالمشروع إذا لم يوجد مجلد أعلى منه يقبل الـ hard links، كما يحدث داخل sandbox لـ AI agent لا يملك صلاحية إلا على مجلد المشروع.

لكن الإصدار 12 صدر على وسم next-12 لا latest. فالتثبيت العادي عبر npm i -g pnpm كان ينزّل حتى 27 أغسطس 2026 الإصدار 11.24.0، والحصول على الإصدار 12 كان يتطلب طلبه بالاسم.

## المصادر

- [الحزمة على npm](https://www.npmjs.com/package/pnpm/v/12.0.0)
- [ملاحظات إصدار pnpm 12](https://github.com/pnpm/pnpm/releases/tag/v12.0.0)
- [صفحة إصدارات pnpm](https://github.com/pnpm/pnpm/releases)
- [توثيق pnpm](https://pnpm.io/)
