जवाबों:
launch.json
अंदर (.vscode फ़ोल्डर) बनाएँlaunch.json
(नीचे देखें)tasks.json
अंदर (.vscode फ़ोल्डर) बनाएँtasks.json
(नीचे देखें)launch.json for angular/cli >= 1.3
{
"version": "0.2.0",
"configurations": [
{
"name": "Launch Chrome",
"type": "chrome",
"request": "launch",
"url": "http://localhost:4200/#",
"webRoot": "${workspaceFolder}"
},
{
"name": "Attach Chrome",
"type": "chrome",
"request": "attach",
"url": "http://localhost:4200/#",
"webRoot": "${workspaceFolder}"
},
{
"name": "Launch Chrome (Test)",
"type": "chrome",
"request": "launch",
"url": "http://localhost:9876/debug.html",
"webRoot": "${workspaceFolder}"
},
{
"name": "Launch Chrome (E2E)",
"type": "node",
"request": "launch",
"program": "${workspaceFolder}/node_modules/protractor/bin/protractor",
"protocol": "inspector",
"args": ["${workspaceFolder}/protractor.conf.js"]
}
]
}
tasks.json for angular/cli >= 1.3
{
"version": "2.0.0",
"tasks": [
{
"identifier": "ng serve",
"type": "npm",
"script": "start",
"problemMatcher": [],
"group": {
"kind": "build",
"isDefault": true
}
},
{
"identifier": "ng test",
"type": "npm",
"script": "test",
"problemMatcher": [],
"group": {
"kind": "test",
"isDefault": true
}
}
]
}
launch.json
launch.json
(नीचे देखें)ng serve
) शुरू करेंlaunch.json for angular/cli >= 1.0.0-beta.32
{
"version": "0.2.0",
"configurations": [
{
"type": "chrome",
"request": "launch",
"name": "Launch Chrome",
"url": "http://localhost:4200",
"webRoot": "${workspaceFolder}",
"sourceMaps": true,
"userDataDir": "${workspaceFolder}/.vscode/chrome",
"runtimeArgs": [
"--disable-session-crashed-bubble"
]
},
{
"name": "Attach Chrome",
"type": "chrome",
"request": "attach",
"url": "http://localhost:4200",
"port": 9222,
"webRoot": "${workspaceFolder}",
"sourceMaps": true
}
]
}
launch.json for angular/cli < 1.0.0-beta.32
{
"version": "0.2.0",
"configurations": [
{
"name": "Lunch Chrome",
"type": "chrome",
"request": "launch",
"url": "http://localhost:4200",
"webRoot": "${workspaceFolder}/src/app",
"sourceMaps": true,
"sourceMapPathOverrides": {
"webpack:///./~/*": "${workspaceFolder}/node_modules/*",
"webpack:///./src/*": "${workspaceFolder}/src/*"
},
"userDataDir": "${workspaceFolder}/.vscode/chrome",
"runtimeArgs": [
"--disable-session-crashed-bubble"
]
},
{
"name": "Attach Chrome",
"type": "chrome",
"request": "attach",
"url": "http://localhost:4200",
"port": 9222,
"webRoot": "${workspaceFolder}/src/app",
"sourceMaps": true,
"sourceMapPathOverrides": {
"webpack:///./~/*": "${workspaceFolder}/node_modules/*",
"webpack:///./src/*": "${workspaceFolder}/src/*"
}
}
]
}
NG Live Development Server
और फिर Chrome
सिर्फ एक F5
क्लिक में लॉन्च करें?
launch.json
और tasks.json
यहाँ से करता है। जैसा कि मैंने समझा launch.json
कि नोड सर्वर लॉन्च करना है और 8080 पोर्ट सुनना है, और एप्लिकेशन को चलाने के लिए कमांड का tasks.json
उपयोग करने npm
और निष्पादित करने का निर्देश देता है ng serve
।
ऐसा लगता है कि वीएस कोड टीम अब डिबगिंग व्यंजनों का भंडारण कर रही है।
https://github.com/Microsoft/vscode-recipes/tree/master/Angular-CLI
{
"version": "0.2.0",
"configurations": [
{
"name": "Launch Chrome with ng serve",
"type": "chrome",
"request": "launch",
"url": "http://localhost:4200",
"webRoot": "${workspaceRoot}"
},
{
"name": "Launch Chrome with ng test",
"type": "chrome",
"request": "launch",
"url": "http://localhost:9876/debug.html",
"webRoot": "${workspaceRoot}"
},
{
"name": "Launch ng e2e",
"type": "node",
"request": "launch",
"program": "${workspaceRoot}/node_modules/protractor/bin/protractor",
"protocol": "inspector",
"args": ["${workspaceRoot}/protractor.conf.js"]
}
]
}
ऐसा करने के दो अलग-अलग तरीके हैं। आप एक नई प्रक्रिया शुरू कर सकते हैं या संलग्न कर सकते हैं किसी मौजूदा को ।
दोनों प्रक्रियाओं में मुख्य बिंदु वेबपैक देव सर्वर और VSCode डिबगर एक ही समय में चल रहा है ।
अपनी launch.json
फ़ाइल में निम्न कॉन्फ़िगरेशन जोड़ें:
{
"version": "0.2.0",
"configurations": [
{
"name": "Angular debugging session",
"type": "chrome",
"request": "launch",
"url": "http://localhost:4200",
"webRoot": "${workspaceFolder}"
}
]
}
निष्पादित करके कोणीय सीएलआई से वेबपैक देव सर्वर चलाएँ npm start
उसके लिए आपको खुले पोर्ट के साथ डीबगर मोड में Chrome चलाने की आवश्यकता है (मेरे मामले में यह होगा 9222
):
मैक:
/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --remote-debugging-port=9222
खिड़कियाँ:
chrome.exe --remote-debugging-port=9222
launch.json
फ़ाइल निम्न तरीके से दिखाई देगी:
{
"version": "0.2.0",
"configurations": [
{
"name": "Chrome Attach",
"type": "chrome",
"request": "attach",
"port": 9222,
"url": "http://localhost:4200/",
"webRoot": "${workspaceFolder}"
}
]
}
npm start
इस मामले में, डिबगर एक नई विंडो लॉन्च करने के बजाय मौजूदा क्रोम प्रक्रिया से जुड़ा हुआ है।
मैंने अपना लेख लिखा, जहाँ मैंने दृष्टांतों के साथ इस दृष्टिकोण का वर्णन किया।
सरल निर्देश कैसे VSCode में कोणीय के लिए डिबगर कॉन्फ़िगर करें
chrome.exe --remote-debugging-port=9222
। यदि
यह दृश्य स्टूडियो कोड साइट पर विस्तार से बताया गया है: https://code.visualstudio.com/docs/nodejs/angj-tutorial
इस विन्यास का उपयोग कर सकते हैं:
{
"version": "0.2.0",
"configurations": [
{
"name": "ng serve",
"type": "chrome",
"request": "launch",
"preLaunchTask": "npm: start",
"url": "http://localhost:8080",
"webRoot": "${workspaceFolder}"
}
]
}
यहाँ एक हल्का सा हल है, Angular 2+ के साथ काम करता है (मैं Angular 4 का उपयोग कर रहा हूँ)
यदि आप MEAN स्टैक चलाते हैं, तो भी एक्सप्रेस सर्वर के लिए सेटिंग्स को जोड़ा।
{
// Use IntelliSense to learn about possible Node.js debug attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Launch Angular Client",
"type": "chrome",
"request": "launch",
"url": "http://localhost:4200",
"runtimeArgs": [
"--user-data-dir",
"--remote-debugging-port=9222"
],
"sourceMaps": true,
"trace": true,
"webRoot": "${workspaceRoot}/client/",
"userDataDir": "${workspaceRoot}/.vscode/chrome"
},
{
"type": "node",
"request": "launch",
"name": "Launch Express Server",
"program": "${workspaceRoot}/server/bin/www",
"outFiles": [
"${workspaceRoot}/out/**/*.js"
]
}
]
}
@Asjix का उत्तर बहुत गहन है, लेकिन जैसा कि कुछ ने बताया है, अभी भी ng serve
क्रोम में कोणीय ऐप को शुरू करने और फिर शुरू करने के लिए कई इंटरैक्शन की आवश्यकता है । मुझे निम्नलिखित कॉन्फ़िगरेशन का उपयोग करके एक क्लिक के साथ यह काम मिला। @ Asesjix के उत्तर से मुख्य अंतर कार्य प्रकार अब है shell
और कमांड कॉल start
इससे पहले ng serve
कि ng serve
यह अपनी प्रक्रिया में मौजूद हो सकता है और लॉन्च से डीबगर को ब्लॉक नहीं करता है:
tasks.json:
{
"version": "2.0.0",
"tasks": [
{
"label": "ng serve",
"type": "shell",
"command": "\"start ng serve\""
},
{
"label": "ng test",
"type": "shell",
"command": "\"start ng test\"",
}
]
}
launch.json:
{
"version": "0.2.0",
"configurations": [
{
"name": "Launch in Chrome",
"type": "chrome",
"request": "launch",
"url": "http://localhost:4200",
"webRoot": "${workspaceFolder}",
"preLaunchTask": "ng serve"
}
]
}
मेरे मामले में मैंने मूल कोणीय प्रोजेक्ट फ़ोल्डर ट्री का उपयोग नहीं किया था और मुझे पता था कि कुछ गलत था webRoot
/{workspaceFolder}
बिट के लेकिन मेरे सभी प्रयोग का कोई परिणाम नहीं निकला। एक और एसओ जवाब से एक टिप मिला, जो मुझे फिर से मिल जाए तो मैं लिंक कर दूंगा।
मुझे {workspaceFolder}
रनटाइम पर चर की सामग्री को खोजने में मदद मिली और फिर इसे मेरे "src" फ़ोल्डर के स्थान में संशोधित किया गया जिसके तहत आपके पास "ऐप / *" है। इसे खोजने के लिए, मैंने preLaunchTask
अपनी लॉन्च.जॉसन फ़ाइल में एक जोड़ा और इसके मूल्य को आउटपुट करने के लिए एक कार्य किया {workspaceFolder}
।
launch.json , जो क्रोम डीबगर को स्थापित करने के बाद दिखाई देता है
{
"version": "0.2.0",
"configurations": [
{
"type": "chrome",
"request": "launch",
"name": "Launch Chrome against localhost",
"url": "http://localhost:4200",
"webRoot": "${workspaceFolder}/src/newProjectRoot/",
"preLaunchTask": "Echo values" //Just to see what the cryptic vs code variables actually are https://code.visualstudio.com/docs/editor/variables-reference
}
]
}
कार्य । डिफ़ॉल्ट रूप से मौजूद नहीं है। Ctrl + Shift + p दबाएं और मुझे लगता है कि इसे 'अन्य कमांड के लिए कार्य बनाएं' या कुछ इसी तरह का है। कार्यों के बाद इसे देखने के लिए प्रतीत नहीं किया जा सकता है। जेटसन बनाया गया है। आप फ़ाइल को लॉन्च के समान स्थान पर भी बना सकते हैं
{
"version": "2.0.0",
"tasks": [
{
"label": "Echo values",
"command": "echo",
"args": ["${env:USERNAME}", "workspaceFolder = ${workspaceFolder}"],
"type": "shell"
}
]
}
एक बार जब मुझे $ {workspaceFolder} का मूल्य पता था, तो मैंने इसे अपने नए प्रोजेक्ट ट्री में अपने src फोल्डर को इंगित करने के लिए तय किया और यह सब काम कर गया। डिबगिंग को ng serve
या तो प्रीलेच कार्य के रूप में या निर्माण के भाग के रूप में (ऊपर के उदाहरण) या कमांड प्रॉम्प्ट में चलाने की आवश्यकता होती है।
यहां उन सभी चरों का लिंक दिया गया है जिनका आप उपयोग कर सकते हैं: