node.js - فيجوال ستوديو 2019 العمليات لا تغلق، مشاكل NodeJS


أنا أعمل على تثبيت جديد لنظام Windows 10 Pro (10.0.18362) وأحاول إعداد وتكوين Visual Studio 2019 لتطوير الويب باستخدام .NET Core 3.1، ولكنني أواجه عدة مشاكل.

لقد أنشأت تطبيق ويب افتراضي باستخدام React.js وASP.NET Core وقمت بتشغيل المشروع. بدت الأمور تعمل على ما يرام، باستثناء أنه بعد تحديث شفرة JavaScript، يتأخر المتصفح في التحديث بعد توقف طويل نسبياً؛ يبدو أن الأمور تتأخر.

بعد إغلاق Visual Studio 2019 من تطبيق الويب الافتراضي (بدون تحديثات)، هناك عدة عمليات يبدو أنها تتوقف عن الاستجابة، ويجب إغلاقها يدويًا:

لقد حاولت تثبيت Visual Studio 2019 مع Node.js المقدم من مثبت Visual Studio، بالإضافة إلى تثبيت Node.js V12.4 و V13.6 يدويًا بنفس النتائج.

مشكلة أخرى: إذا قمت بتحديث المشروع من JavaScript إلى TypeScript باستخدام npx create-react-app client-app --typescript، فإن التحديثات الفورية تتوقف عن العمل تمامًا. ولكن بعد تحديث كود JavaScript وتحديث المتصفح، يبدو أن الأشياء تتحدث، لذا يبدو أنه يتم إعادة الترجمة. لقد جربت التصحيح في Firefox و Chrome، وكلاهما أعطى نفس النتائج.

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

هل هناك إجراء تثبيت محدد يجب أن أقوم به كحل مؤقت؟ أم من المحتمل أنني أفتقد حزم NuGet أو الإضافات؟ بما أن هذا تثبيت جديد لنظام التشغيل، هل هناك ميزات في ويندوز يجب أن أقوم بتثبيتها؟ أم هناك تغييرات أخرى في التكوين/الصلاحيات قد تكون سببًا في هذا؟

قبل هذا التثبيت، كانت المشاريع التي تم إنشاؤها في Visual Studio 2017 فقط تعمل كما هو متوقع. لكنني أحتاج إلى تطوير هذا الموقع في .NET Core 3.0 ويبدو أن Visual Studio 2019 هو المدعوم لذلك فقط.

تحديث

بعد بعض التجارب، يبدو أن Node هو سبب المشاكل. إذا قمت بإيقاف عمليات Node يدويًا، فإن Visual Studio سيغلق في النهاية—لكن هذا يترك عمليات أخرى مثل VSCompiler و Consoles تعمل. يحدث هذا حتى إذا قمت بتشغيل Visual Studio كمسؤول.

هل يجب أن أقوم بتثبيت Node قبل Visual Studio، أم العكس؟ هل من الممكن أن يكون هناك إعداد ما يجب عليّ القيام به مع Visual Studio أو Node لجعل الأمور تعمل بشكل صحيح؟

التحديث 2

بعد عدم العثور على أي حل، حاولت إعادة تثبيت Windows بالكامل، بما في ذلك تهيئة القرص، ثم قمت بتثبيت Visual Studio وNode.js فقط.

شيء مثير للاهتمام وجدته عند القيام بذلك: في البداية قمت بتثبيت Visual Studio فقط واخترت كل من "تطوير الويب" و"تطوير NodeJS". ولكن عندما حاولت تشغيل تطبيق ويب جديد لـ .NET Core دون أي تغييرات، تلقيت خطأ يقول إن Node.js لم يتم تثبيته—على الرغم من أنني كنت قادرًا على العثور على node.exe في مجلد MsBuilds تحت Visual Studio.

لقد قمت بإلغاء تثبيت Visual Studio وجميع المكونات الأخرى تمامًا، ثم قمت بتثبيت Node.js، وبعدها Visual Studio، ولكن المشكلة ما زالت قائمة. في أي وقت أحاول فيه تشغيل أي نوع من جافاسكريبت باستخدام قوالب SPA، فإن عمليات Node.js لا تتوقف. إذا قتلت عملية Node.js، فإن Visual Studio سينتهي أخيرًا، لكنه يترك Console Window Host و VBCSCompiler يعملان ويجب إيقافهما يدويًا.

لقد حاولت أيضًا إنشاء تطبيق ويب جديد باستخدام .NET Core، باستثناء أنني في هذه المرة اخترت قالب Angular، وقد عمل بشكل أفضل: يعمل التحديث الفوري ويبدو أنه يعمل بسرعة أكبر. لكن العمليات لا تزال لا تغلق. الفارق الوحيد هو أن إنهاء عمليات Node.js لا يسمح لإغلاق Visual Studio.

التحديث 3

لست متأكدًا أيضًا إذا كان هذا يساعد، لكن حاولت تعيين خصائص node.exe إلى "تشغيل هذا البرنامج كمسؤول" لمعرفة ما إذا كانت المشكلة تتعلق بالأذونات. وأسفر ذلك عن نفس النتائج. لاحظت أنه ستظهر نافذتان، أولاً نافذة فارغة، ثم نافذة خادم Angular الفعلية.

لست متأكدًا مما إذا كان هذا مرتبطًا، ولكن عندما حاولت تشغيل تطبيق Angular مرة أخرى، يبدو أن Angular يشير إلى منفذ آخر (عشوائي) مختلف عن ذلك المحدد في إعدادات التصحيح في المشروع.

شيء واحد لاحظته هو أن رسائل الخادم المعتادة لا تظهر في نافذة الإخراج. كانت تعرض رسائل node.js مثل "الخادم يعمل" ورسائل المترجم الأخرى، لكنها الآن تعرض فقط إخراج .NET.

التحديث 4

مع الاقتراب، قمت بإلغاء تثبيت Visual Studio و Node.js، ثم تأكدت من تنظيف أي مجلدات متبقية من Visual Studio وnode_modules من دلائل AppData وUser/Local، ثم قمت بعمل تنظيف للقرص. أخيرًا، قمت بإعادة تثبيت Visual Studio—مع التأكد من تشغيل المثبت كمسؤول—وأعدت تثبيت Node.js.

شغّلت برنامج Visual Studio كمسؤول وأنشأت تطبيق Angular جديد. الآن، يعمل تطبيق Angular كما هو متوقع، وتعمل خاصية HMR وتبدو الأمور سلسة باستثناء أن العمليات لا تزال معلقة. الفرق الرئيسي هو أن إنهاء عملية Microsoft Visual Studio 2019 يقتل كل شيء، بينما من قبل كان يترك VBSCCompiler وNode.js ووحدات التحكم تعمل.

عند إنشاء تطبيق React، يتم تحميل الأشياء بشكل جيد. لكن، مرة أخرى، لا يعمل HMR ويترك العمليات قيد التشغيل أيضًا. يبدو أن إيقاف تشغيل عملية Visual Studio الرئيسية ينظف هذه العمليات الآن أيضًا.

الإجابة رقم 1

أخشى أنني لا أملك حلاً، لكن إذا أراد أي شخص طريقة سريعة لإنهاء جميع عمليات النود الخارج عن السيطرة وتسريع الأمور مرة أخرى، يمكنهم تشغيل:

taskkill /IM "node.exe" /F

لم أواجه أي مشاكل في تنفيذ هذا أثناء تشغيل Visual Studio.

الإجابة رقم 2

في Visual Studio 2019، اذهب إلى الأدوات، الخيارات، التصحيح، العام، وفي الأسفل يوجد مربع اختيار لإغلاق الجهاز تلقائيا عند توقف التصحيح. يتم إلغاء الاختيار افتراضيا في الإصدارات الجديدة من VS، وإذا نظرت إلى خصائص مشروع ASP.NET الأساسي سترى أنه مشروع على الكونسول. لذا بدون خيار الاختيار، لا يغلق الجهاز تلقائيا.

المشكلة هي أنه عبارة عن وحدة تحكم مخفية لذا لا يمكنك رؤيتها لإيقافها يدوياً. إذا قمت بتحديد المربع لإغلاق وحدة التحكم تلقائياً، فستتوقف وحدات التحكم و Node.js عن العمل عند إيقاف أدوات التصحيح. أيضاً في الخيارات، هناك قسم أدوات Node.js الذي قد ترغب في الاطلاع عليه أيضًا. يحتوي على مربع اختيار للانتظار لإدخال عند خروج العملية بشكل غير طبيعي. إذا كانت وحدة التحكم مخفية، فلن يكون هناك طريقة لإدخال البيانات، لذا قد يبقى هذا العملية مفتوحة أيضًا.

خيار آخر، إذا لم ترغب في تغيير أي من خيارات تصحيح الأخطاء، هو الانتقال إلى خصائص مشروعك > تصحيح الأخطاء وتغيير إعدادات التشغيل لملف تعريف IIS Express إلى المشروع بدلاً من IIS Express. هذا سيجعل وحدة التحكم/موجه الأوامر مرئية فعليًا وعند الانتهاء من تصحيح الأخطاء يمكنك الضغط على Ctrl-C لإيقاف المصحح أو عند الضغط على إيقاف ستظهر رسالة في وحدة التحكم تقول اضغط أي مفتاح لإغلاق هذه النافذة...