رسائل الأخطاء
«npm error code ETIMEDOUT» على Mac
يعني ETIMEDOUT أن الطرف الآخر لم يستجب في الوقت المحدد. تقول وثائق Node.js: «لم يستجب الطرف المتصل بشكل صحيح بعد فترة من الوقت».
الأعراض
- يتوقف
npm installمع ظهورnpm error code ETIMEDOUT. - يضيف npm أن هذه مشكلة تتعلق بالاتصال بالشبكة.
- يفشل على شبكة واحدة، مثل شبكة شركة أو نقطة اتصال.
الأسباب المحتملة
- وكيل لا يعرفه npm. في شبكة تحتاج إلى وكيل، يحتاج npm إلى إعدادَي
proxyوhttps-proxy. - سجل لا يمكنك الوصول إليه. قد يشير إعداد
registryقديم إلى خادم خاص. - اتصال بطيء أو يفقد الحزم. قد تنتهي مهلة الحزم الكبيرة على Wi-Fi ضعيفة أو نقطة اتصال.
- مسار IPv6 معطّل. للسجل عنوان IPv6، ولا يعمل IPv6 على شبكتك.
كيفية التحقق
اعرض إعدادات سجل npm والوكيل.
npm config get registry npm config get proxy npm config get https-proxyاطلب استجابة من السجل.
npm pingاختبر السجل باستخدام curl وIPv4 فقط.
curl -4 -I https://registry.npmjs.org/قس الاتصال.
networkQuality
كيفية الإصلاح
إذا كانت الشبكة تحتاج إلى وكيل، فعيّنه لـ npm.
npm config set https-proxy http://proxy.example.com:8080أزل إعداد سجل قديمًا ليستخدم npm الإعداد الافتراضي.
npm config delete registryزد عدد محاولات npm على اتصال بطيء.
npm config set fetch-retries 5أعد تشغيل التثبيت على شبكة أسرع إن أمكن.
باستخدام Kilobat
يختبر طبيب الاتصال في Kilobat السجل طبقةً بطبقة: الشبكة والوكيل وDNS والقواعد وIPv4 وIPv6 وTLS والخادم. ويحدد الطبقة التي فشلت.
kilobat why https://registry.npmjs.org/تحقق مما إذا كانت الشبكة محدودة البيانات أو تستخدم VPN أو بطيئة قبل تثبيت كبير.
kilobat conditionsفحوصات Kilobat هذه مجانية. يشغّلها وكلاء الذكاء الاصطناعي عبر MCP باستخدام
diagnose_connectionوdiagnose_network. راجع معرفة سبب تعذّر اتصال موقع أو API واحد.
الأسئلة
كم ينتظر npm؟
تحدد وثائق npm قيمة fetch-timeout الافتراضية عند 300000 ms، أي خمس دقائق، و2 من fetch-retries.
هل يمكن أن يؤثر إعداد الوكيل في تنزيلات npm؟
نعم. لدى npm إعدادات للوكيل، وقد يمنع وكيل غير صحيح أو يتعذر الوصول إليه الاتصال بالسجل.
المصادر
- وثائق Node.js: أخطاء النظام الشائعة
- وثائق npm: config
- curl(1) وnetworkQuality(8)، صفحة الدليل المثبتة مع macOS 27.2
تم التحقق في 29 أكتوبر 2026.