مشكلة في استخدام n8n محليًا: npm EALLOWREMOTE عند تثبيت xlsx

وصف المشكلة/الخطأ/السؤال

أقوم بتشغيل n8n محليًا على نظام Windows.
أحاول تثبيت حزمة xlsx، لكني أتلقى الخطأ التالي:
npm ERR! code EALLOWREMOTE
npm ERR! Fetching packages of type “remote” have been disabled
npm ERR! Refusing to fetch “xlsx@https://cdn.sheetjs.com/xlsx-0.20.2/xlsx-0.20.2.tgz
هل واجه أي شخص هذا من قبل؟
هل هناك طريقة موصى بها لتثبيت حزمة xlsx لإعداد n8n محلي؟

image

ما هي رسالة الخطأ (إن وجدت)؟

يرجى مشاركة سير العمل الخاص بك

(حدد العقد على لوحتك واستخدم اختصارات لوحة المفاتيح CMD+C/CTRL+C و CMD+V/CTRL+V لنسخ ولصق سير العمل.)

شارك الناتج الذي يعيده آخر عقدة

معلومات حول إعداد n8n الخاص بك

  • إصدار n8n:
  • قاعدة البيانات (الافتراضية: SQLite):
  • إعداد n8n EXECUTIONS_PROCESS (الافتراضي: own, main):
  • تشغيل n8n عبر (Docker, npm, n8n cloud, desktop app):
  • نظام التشغيل:

شكراً لإخبارنا عن هذا، لقد أنشأنا CV-12 كتذكرة تطوير داخلية للنظر فيها.

لقد فحصنا هذه المشكلة ولم نتمكن من تأكيد أنها خلل برمجي. في الوقت الحالي، أغلقنا التذكرة الداخلية، لكن إذا بدأت تبدو وكأنها خلل برمجي، فسيقوم فريق الإشراف لدينا بتحديدها مجددًا.

مرحبا @dit!

خطأ EALLOWREMOTE مقصود في تطبيق سطح المكتب n8n على Windows - فهو يعزل عمليات تثبيت حزم npm ويمنع جلب الحزم من السجلات البعيدة مثل شبكات CDN. إنها ليست خطأ بالضرورة، بل مجرد قيد من قيود بيئة سطح المكتب المحلية.

حل بديل: لا تحتاج إلى عقدة xlsx المجتمعية إذا كنت تريد فقط قراءة/كتابة ملفات Excel. عقدة “Spreadsheet File” المدمجة تتعامل مع .xlsx بشكل أصلي بدون تثبيت إضافي. إذا كنت تحتاج بشكل خاص إلى حزمة xlsx npm لعقدة Code، فانتقل إلى تشغيل n8n عبر npx n8n أو Docker بدلاً من تطبيق سطح المكتب - تلك البيئة ليس لديها قيد جلب بعيد.

شكراً على التوضيح!

ومع ذلك، أعتقد أن مشكلتي مختلفة قليلاً. أنا لا أحاول تثبيت حزمة xlsx أو استخدام عقدة Spreadsheet File.

أنا ببساطة أحاول تثبيت n8n نفسه باستخدام:

npm install -g n8n

يفشل التثبيت مع:

npm ERR! code EALLOWREMOTE
npm ERR! تم تعطيل جلب الحزم من نوع “remote”
npm ERR! رفض جلب “xlsx@https://cdn.sheetjs.com/xlsx-0.20.2/xlsx-0.20.2.tgz

يبدو إذن أن المثبت يحاول جلب حزمة xlsx تلقائياً أثناء تثبيت n8n. لم أقم بتثبيت xlsx يدوياً.

حاولت أيضاً تشغيل:

npx n8n

lكن حصلت على نفس الخطأ.

بيئتي:

  • نظام التشغيل: Windows
  • Node.js: v24.18.0
  • npm: 12.0.1

هل واجه أحد هذا؟ هل هذا مشكلة توافق مع Node.js/npm، أم أن هناك اعتماد آخر يسبب جلب حزمة xlsx من شبكة SheetJS CDN؟

@dit

يمكنك حل هذا بالسماح صراحة بعمليات الجلب البعيدة لمدة التثبيت. قم بتشغيل الأمر التالي في جهاز الطرفية الخاص بك:

بالنسبة إلى Windows (Command Prompt/PowerShell):

npm install -g n8n --allow-remote-fetch

إذا لم ينجح ذلك، يمكنك تعيين الإعدادات عمومياً أولاً:

npm config set allow-remote-fetch true
npm install -g n8n

نص عادي

مرحبًا بك! أنت تواجه حالة كلاسيكية حيث يكون npm آمنًا جدًا لصالحه الخاص.

خطأ `EALLOWREMOTE` يعني أن عميل npm الخاص بك مُعدّ لمنع جلب الحزم مباشرة من عناوين URL بعيدة (مثل CDN SheetJS). هذا إجراء أمان، لكنه يمنع بشكل كامل تثبيت حزمة `xlsx`.

إليك الطريقة خطوة بخطوة لتجاوز هذا وجعله يعمل لإعداد n8n المحلي على Windows:

**1. تفعيل جلب الملفات البعيدة مؤقتًا في npm**
افتح موجه الأوامر (CMD أو PowerShell) وقم بتشغيل:
`npm config set allow-remote-fetch true`

**2. إنشاء مجلد مخصص للحزم الخارجية**
من الجيد الاحتفاظ بالحزم الخارجية منفصلة عن ملفات n8n الأساسية.
```cmd
mkdir C:\n8n_external_packages
cd C:\n8n_external_packages

3. تهيئة npm وتثبيت الحزمة داخل هذا المجلد الجديد، قم بتشغيل:

DOS

npm init -y
npm install xlsx

4. تكوين n8n للسماح بالعثور على الحزمة تحتاج إلى إخبار n8n بالسماح بالوحدات الخارجية في عقدة Code ومكان العثور عليها على جهاز Windows الخاص بك. قبل بدء n8n، قم بتعيين متغيرات البيئة التاليتين في المحطة الطرفية:

DOS

set NODE_FUNCTION_ALLOW_EXTERNAL=xlsx
set NODE_PATH=C:\n8n_external_packages\node_modules
n8n start

5. إرجاع تكوين npm (موصى به) لأسباب أمنية، بمجرد تثبيت الحزمة، يمكنك إعادة تفعيل كتل جلب الملفات البعيدة: npm config set allow-remote-fetch false

بعد بدء n8n، يمكنك الآن استخدام const XLSX = require('xlsx'); في عقد Code الخاصة بك بدون أي مشاكل!

ملاحظة إضافية قمت فعلاً بتمرير منشور المنتدى الدقيق الخاص بك عبر n8n Mastery / Sensei (مساعد ذكاء اصطناعي مجاني وممتع لمجتمع n8n قمت ببناؤه للتو)، وقد شخصت بشكل صحيح كتلة EALLOWREMOTE CDN وأنشأت هذا الإصلاح!

أنا أرفق لقطة شاشة لتحليلها الكامل أدناه. إذا كنت تريد تصحيح أخطاء سير العمل و npm مثل هذه على الفور دون مغادرة لوحة n8n الخاصة بك، يمكنك التحقق من هنا: https://n8n-sensei-app-nu.vercel.app/

آمل أن يساعدك هذا في العودة إلى أتمتة جداول البيانات الخاصة بك!