أقوم بتشغيل 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 محلي؟
ما هي رسالة الخطأ (إن وجدت)؟
يرجى مشاركة سير العمل الخاص بك
(حدد العقد على لوحتك واستخدم اختصارات لوحة المفاتيح CMD+C/CTRL+C و CMD+V/CTRL+V لنسخ ولصق سير العمل.)
لقد فحصنا هذه المشكلة ولم نتمكن من تأكيد أنها خلل برمجي. في الوقت الحالي، أغلقنا التذكرة الداخلية، لكن إذا بدأت تبدو وكأنها خلل برمجي، فسيقوم فريق الإشراف لدينا بتحديدها مجددًا.
خطأ EALLOWREMOTE مقصود في تطبيق سطح المكتب n8n على Windows - فهو يعزل عمليات تثبيت حزم npm ويمنع جلب الحزم من السجلات البعيدة مثل شبكات CDN. إنها ليست خطأ بالضرورة، بل مجرد قيد من قيود بيئة سطح المكتب المحلية.
حل بديل: لا تحتاج إلى عقدة xlsx المجتمعية إذا كنت تريد فقط قراءة/كتابة ملفات Excel. عقدة “Spreadsheet File” المدمجة تتعامل مع .xlsx بشكل أصلي بدون تثبيت إضافي. إذا كنت تحتاج بشكل خاص إلى حزمة xlsx npm لعقدة Code، فانتقل إلى تشغيل n8n عبر npx n8n أو Docker بدلاً من تطبيق سطح المكتب - تلك البيئة ليس لديها قيد جلب بعيد.
مرحبًا بك! أنت تواجه حالة كلاسيكية حيث يكون 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/
آمل أن يساعدك هذا في العودة إلى أتمتة جداول البيانات الخاصة بك!