لتمرير وسائط سطر الأوامر إلى برنامج Node.js عند تصحيح أخطائه على Mac، أضف مصفوفة args إلى تكوين التشغيل الخاص به في VS Code. ضع كل وسيط في سلسلة نصية منفصلة، ثم ابدأ ذلك التكوين باستخدام F5. يؤدي هذا إلى تمرير القيم مباشرة إلى البرنامج؛ ولا يجعل zsh يفسر المصفوفة كأمر shell.

إضافة مصفوفة args إلى launch.json

افتح مجلد المشروع في VS Code. إذا لم يكن يحتوي بالفعل على تكوين تشغيل، فافتح Run and Debug باستخدام ⇧⌘D، واختر create a launch.json file، وحدد مصحح الأخطاء الخاص ببيئة التشغيل لديك. يحفظ VS Code تكوين مساحة العمل في .vscode/launch.json. يبدأ طلب launch عملية جديدة؛ بينما يتصل طلب attach بعملية قيد التشغيل بالفعل، لذا استخدم launch عندما ترغب في أن يبدأ VS Code البرنامج مع الوسائط الخاصة بك. تكوين تصحيح الأخطاء في Visual Studio Code

لهذا المثال العملي، افترض أن مساحة العمل تحتوي على app.js، وتريد تشغيله باستخدام --input متبوعًا بمسار ملف قد يتضمن مسافات، بالإضافة إلى علامة --verbose. أضف أو عدّل هذا التكوين داخل مصفوفة configurations:

{
  "version": "0.2.0",
  "configurations": [
    {
      "type": "node",
      "request": "launch",
      "name": "Debug app with input file",
      "program": "${workspaceFolder}/app.js",
      "cwd": "${workspaceFolder}",
      "args": [
        "--input",
        "${workspaceFolder}/data files/input.txt",
        "--verbose"
      ]
    }
  ]
}

اختر Debug app with input file في محدد تكوين Run and Debug، ثم اضغط على F5. يحدد program نقطة الدخول لـ JavaScript، ويعيّن cwd دليل العمل، ويوفر args قيم سطر الأوامر الإضافية. تحدد إضافة مصحح الأخطاء الخصائص المدعومة لكل بيئة تشغيل؛ تحقق من IntelliSense في launch.json إذا كنت تستخدم مصحح أخطاء مختلفًا أو رأيت خطأ في التحقق من الصحة. تكوين تصحيح الأخطاء في Visual Studio Code

الحفاظ على المسافات والأحرف الخاصة سليمة

في مصفوفة args، يمثل كل عنصر وسيطًا واحدًا. توضح وثائق VS Code أن المسار الذي يحتوي على مسافات يظل سلسلة نصية واحدة بعد استبدال المتغيرات. لذلك، فإن مسار الملف في المثال هو وسيط واحد؛ لا تضف علامات اقتباس مهربة (escaped) مضمنة حوله لمجرد الحفاظ على المسافة. يشير ${workspaceFolder} إلى المجلد المفتوح في VS Code، مما يحافظ على ارتباط المسار بالمشروع. مرجع المتغيرات

يختلف هذا عن كتابة أمر في Terminal. يستخدم macOS غلاف zsh كغلاف افتراضي لـ Terminal، لكن مصفوفة args الخاصة بتكوين التشغيل تمثل وسائط للعملية الهدف. لا يتم توسيع أو تنفيذ بنية Shell مثل * أو > أو | تلقائيًا هناك. على سبيل المثال، إذا كان برنامجك يتوقع القيمة الحرفية a&b.txt، فاكتبها كسلسلة JSON واحدة: "a&b.txt". لتوسيع Shell أو إعادة التوجيه، يجب تشغيل الهدف بشكل صريح عبر shell، ويعتمد السلوك الدقيق على إضافة مصحح الأخطاء؛ يشير VS Code إلى عدم وجود بنية إعادة توجيه شاملة لجميع تكوينات تصحيح الأخطاء. Apple: تغيير الغلاف الافتراضي في Terminal على Mac وتكوين تصحيح الأخطاء في Visual Studio Code

تأكيد ما يتلقاه البرنامج

بالنسبة لـ Node.js، تعرض العملية وسائط التشغيل عبر process.argv. تمثل المدخلات الأولى الملف التنفيذي لـ Node ومسار البرنامج النصي؛ والمدخلات المتبقية هي القيم الإضافية. لفحصها مؤقتًا، أضف هذا إلى app.js:

console.log(process.argv);

مع تكوين المثال، يجب أن يتضمن المخرج --input، والمسار المحلول الذي ينتهي بـ data files/input.txt، و--verbose كمدخلات منفصلة. هذه طريقة عملية لمعرفة ما إذا كانت المشكلة في تكوين VS Code أم في تحليل وسائط البرنامج. أزل المخرجات التشخيصية أو عدّلها بمجرد تأكيد القيم. Node.js: Process

طلب قيمة في كل مرة تقوم فيها بتصحيح الأخطاء

إذا كانت القيمة تتغير بين مرات التشغيل، فإن VS Code يدعم متغيرات الإدخال من نوع promptString في launch.json. أضف مصفوفة inputs على نفس المستوى الأعلى مثل configurations، ثم أشر إلى ذلك الإدخال داخل args:

"args": ["--input", "${input:inputFile}"],
"inputs": [
  {
    "id": "inputFile",
    "type": "promptString",
    "description": "Path to the input file",
    "default": "data files/input.txt"
  }
]

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

استكشاف أخطاء الوسائط التي تبدو مفقودة وإصلاحها

تأكد أولاً من تحديد التكوين الصحيح وأن الطلب هو launch. ثم تحقق من أن قائمة الوسائط موجودة في خاصية args المدعومة لمصحح الأخطاء، وأن الفواصل وعلامات الاقتباس الخاصة بها تشكل JSON صالحًا، وأن برنامجك يتوقع تلك القيم بالترتيب المقدم. تحقق أيضًا من cwd: يفسر البرنامج المسار النسبي بالنسبة لدليل العمل الخاص به، بينما يوفر ${workspaceFolder} نقطة بداية من جذر المشروع. يوصي VS Code بالتحقق من program وcwd وargs والخصائص المدعومة لمصحح الأخطاء المحدد عندما لا يتصرف التشغيل كما هو متوقع. تكوين تصحيح الأخطاء في Visual Studio Code

للحصول على عملية تصحيح أخطاء قابلة للتكرار على Mac، قم بتخزين الوسائط في تكوين التشغيل الخاص بمساحة العمل، واستخدم عنصر مصفوفة JSON واحدًا لكل قيمة مقصودة، وافحص ما تتلقاه بيئة التشغيل فعليًا. تعامل مع وضع علامات الاقتباس في Shell كمسألة منفصلة: فهي تنطبق عندما يحلل shell أمرًا ما، بينما args هو تكوين للبرنامج الذي تم إطلاقه.

المصادر