Vscode: غير قادر على تصحيح أخطاء برنامج Node باستخدام WSL

تم إنشاؤها على ١٨ يوليو ٢٠١٨  ·  4تعليقات  ·  مصدر: microsoft/vscode


  • إصدار VSCode: 1.25.1
  • إصدار نظام التشغيل: Windows 10 Home 1803

أحاول تصحيح أخطاء تطبيق Node باستخدام Windows Subsytem لنظام Linux ولكن لا أعتقد أن المسارات تترجم.

هذا هو الإطلاق الخاص بي. json

{
  // Use IntelliSense to learn about possible attributes.
  // Hover to view descriptions of existing attributes.
  // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
  "version": "0.2.0",
  "configurations": [
    {
      "type": "node",
      "request": "launch",
      "name": "Launch NestJS",
      "useWSL": true,
      "console": "integratedTerminal",
      "runtimeExecutable": "npm",
      "runtimeArgs": [
        "run-script",
        "start:dev"
      ],
      "port": 5000,
    }
  ]
}

وهذا ما يظهر في وحدة التحكم الخاصة بي بعد محاولة التصحيح:

isiah@isiah-acer:/mnt/c/Users/Isiah/Documents/Programming_Projects/etc/podcast_db/new-api$ cd "c:\Users\Isiah\Documents\Programming_Projects\etc\podcast_db\new-api" ; "C:\WINDOWS\System32\bash.exe" -ic "npm run-script start:dev"
-bash: cd: c:\Users\Isiah\Documents\Programming_Projects\etc\podcast_db\new-api: No such file or directory
C:\WINDOWS\System32\bash.exe: command not found

ولمزيد من المعلومات npm run-script start:dev يدير nodemon وهنا هو nodemon.json الخاص بي:

{
  "watch": [
    "src"
  ],
  "ext": "ts",
  "ignore": [
    "src/**/*.spec.ts"
  ],
  "exec": "node -r tsconfig-paths/register --inspect=5000 --require ts-node/register src/main.ts"
}


هل تحدث هذه المشكلة عند تعطيل كافة الملحقات ؟: نعم

WSL bug debug verified

التعليق الأكثر فائدة

أعتقد أن هذا يجب أن يعمل عند إزالة "console": "integratedTerminal" من تكوين الإطلاق. يجب أن يكون "useWSL": true كافيًا.

لتصحيح مثل هذا الإعداد ، استخدم ملحق WSL workspaceFolder وأضف ما يلي إلى تكوينات lauch الخاصة بي:

"localRoot": "${workspaceFolder}",
"remoteRoot": "${command:extension.vscode-wsl-workspaceFolder}",

مثال يناسبني:

{
  "type": "node",
  "request": "launch",
  "name": "Run NPM script in WSL",
  "useWSL": true,
  "localRoot": "${workspaceFolder}",
  "remoteRoot": "${command:extension.vscode-wsl-workspaceFolder}",
  "runtimeExecutable": "npm",
  "runtimeArgs": [
    "run-script",
    "foo",
  ],
  "internalConsoleOptions": "openOnSessionStart",
  "skipFiles": [
    "<node_internals>/**/*.js",
  ],
},

لتصحيح أخطاء اختبارات mocha ، أستخدم تهيئة التشغيل هذه:

{
  "type": "node",
  "request": "launch",
  "name": "Run mocha tests in WSL",
  "useWSL": true,
  "localRoot": "${workspaceFolder}",
  "remoteRoot": "${command:extension.vscode-wsl-workspaceFolder}",
  "program": "${workspaceFolder}/node_modules/mocha/bin/_mocha",
  "args": [
    "-u",
    "tdd",
    "--timeout",
    "999999",
    "--colors",
    "--exit",
    "${command:extension.vscode-wsl-workspaceFolder}/tests/test.js"
  ],
  "internalConsoleOptions": "openOnSessionStart",
  "skipFiles": [
    "<node_internals>/**/*.js",
  ],
},

ملاحظة: سيكون الإخراج في علامة التبويب "Debug Console".

ال 4 كومينتر

هذا إعداد معقد ولم يتم دعمه بعد.

أعتقد أن هذا يجب أن يعمل عند إزالة "console": "integratedTerminal" من تكوين الإطلاق. يجب أن يكون "useWSL": true كافيًا.

لتصحيح مثل هذا الإعداد ، استخدم ملحق WSL workspaceFolder وأضف ما يلي إلى تكوينات lauch الخاصة بي:

"localRoot": "${workspaceFolder}",
"remoteRoot": "${command:extension.vscode-wsl-workspaceFolder}",

مثال يناسبني:

{
  "type": "node",
  "request": "launch",
  "name": "Run NPM script in WSL",
  "useWSL": true,
  "localRoot": "${workspaceFolder}",
  "remoteRoot": "${command:extension.vscode-wsl-workspaceFolder}",
  "runtimeExecutable": "npm",
  "runtimeArgs": [
    "run-script",
    "foo",
  ],
  "internalConsoleOptions": "openOnSessionStart",
  "skipFiles": [
    "<node_internals>/**/*.js",
  ],
},

لتصحيح أخطاء اختبارات mocha ، أستخدم تهيئة التشغيل هذه:

{
  "type": "node",
  "request": "launch",
  "name": "Run mocha tests in WSL",
  "useWSL": true,
  "localRoot": "${workspaceFolder}",
  "remoteRoot": "${command:extension.vscode-wsl-workspaceFolder}",
  "program": "${workspaceFolder}/node_modules/mocha/bin/_mocha",
  "args": [
    "-u",
    "tdd",
    "--timeout",
    "999999",
    "--colors",
    "--exit",
    "${command:extension.vscode-wsl-workspaceFolder}/tests/test.js"
  ],
  "internalConsoleOptions": "openOnSessionStart",
  "skipFiles": [
    "<node_internals>/**/*.js",
  ],
},

ملاحظة: سيكون الإخراج في علامة التبويب "Debug Console".

@ n0v1 عملت لي. شكرا لك!

هذه حالة استخدام شائعة الآن مع التطوير على WSL وعمل تصحيح الأخطاء بالنسبة لي أمر بالغ الأهمية لعملي. الآن للحصول على عمل بيثون 🤞

لقد أعلنا للتو عن التطوير عن بُعد باستخدام VS Code ، تحقق من منشور المدونة للحصول على التفاصيل https://code.visualstudio.com/blogs/2019/05/02/remote-development

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات