العودة
npm v12 سيمنع افتراضياً سكربتات التثبيت وتبعيات Git
SiTech AI Team2 წთ. საკითხავი

npm v12 سيمنع افتراضياً سكربتات التثبيت وتبعيات Git

نشرت GitHub قائمة التغييرات الكاسرة في npm v12: سكربتات تثبيت التبعيات وتبعيات Git والتبعيات من عناوين URL بعيدة ستصبح معطّلة افتراضياً. الإصدار متوقع في يوليو 2026، والتحذيرات تظهر بالفعل في npm 11.16.0 وما بعده.

ما الذي يتغير في npm v12

نشرت GitHub قائمة التغييرات الكاسرة التي سترافق npm v12، الإصدار الرئيسي التالي من مدير حزم JavaScript، والمتوقع في يوليو 2026. يحوّل الإصدار عدة سلوكيات تلقائية في npm install إلى خطوات يجب على المطورين السماح بها صراحةً. جميع التغييرات تظهر الآن كتحذيرات في npm 11.16.0 وما بعده، ما يمنح المشاريع وقتاً للاستعداد قبل الترقية.

سكربتات التثبيت تحتاج إلى إذن

أكبر تغيير هو أن allowScripts سيصبح معطّلاً افتراضياً. بعد الترقية لن ينفّذ npm install سكربتات preinstall وinstall وpostinstall القادمة من التبعيات ما لم يُسمح بها صراحةً في المشروع. يشمل ذلك عمليات البناء المحلية عبر node-gyp: الحزمة التي تحتوي ملف binding.gyp دون سكربت تثبيت صريح ستُحظر أيضاً، لأن npm يشغّل لها ضمنياً node-gyp rebuild. وتُحظر بالطريقة نفسها سكربتات prepare في تبعيات Git والملفات وlink.

لمعرفة ما سيُحظر يمكن تشغيل npm approve-scripts --allow-scripts-pending، ثم السماح للحزم الموثوقة عبر npm approve-scripts وحظر الباقي عبر npm deny-scripts. وتُكتب قائمة الإذن الناتجة في ملف package.json ويُستحسن إيداعها في المستودع.

تبعيات Git والتبعيات البعيدة معطّلة افتراضياً

يتغير أيضاً الوضع الافتراضي لعلمين آخرين. سيصبح --allow-git بقيمة none، فلن يحل npm install تبعيات Git، المباشرة أو غير المباشرة، دون إذن صريح. وتقول GitHub إن ذلك يغلق مساراً لتنفيذ الشيفرة كان فيه ملف .npmrc التابع لحزمة Git قادراً على تجاوز ملف تنفيذ Git حتى مع استخدام --ignore-scripts. أُعلن التغيير أول مرة في 18 فبراير 2026 وهو متاح في npm 11.10.0 وما بعده.

كذلك يصبح --allow-remote افتراضياً بقيمة none: لن تُحل التبعيات القادمة من عناوين URL بعيدة، مثل ملفات tar عبر HTTPS، دون إذن صريح. العلم متاح في npm 11.15.0 وما بعده. أما العلمان المرتبطان --allow-file و--allow-directory فيحتفظان بقيمتهما الافتراضية في v12.

كيف تستعد

تنصح GitHub بالترقية إلى npm 11.16.0 أو أحدث، وتشغيل التثبيت المعتاد ومراجعة التحذيرات. بعد ذلك استخدم npm approve-scripts --allow-scripts-pending لعرض الحزم التي تحتوي سكربتات، واسمح للموثوقة منها، ثم أودع ملف package.json المحدّث. بعد الترقية ستستمر السكربتات المصرّح بها فقط، أما غير المصرّح بها فتتوقف. تتوفر الوثائق الخاصة بـ npm approve-scripts وnpm deny-scripts وإعداد allow-scripts الذي تستخدمه npx والتنصيبات العامة على موقع وثائق npm، بينما يجري النقاش في GitHub Community.

SSiTech

SiTech — تطوير ويب مدعوم بالذكاء الاصطناعي

نبني مواقع سريعة وعصرية وندمج الذكاء الاصطناعي في سير عمل الشركات. لديك مشروع أو سؤال؟ يسعدنا مساعدتك.