2017-04-04 11 views
5

मुझे एक एनपीएम स्क्रिप्ट मिली है जिसे मैं डीबग करने की कोशिश कर रहा हूं। मैं बनाम कोड का उपयोग करता हूं इसलिए मैंने सोचा कि मैं डीबग कॉन्फ़िगरेशन बनाउंगा और डीबगर के साथ इसके माध्यम से कदम उठाऊंगा।बनाम कोड का उपयोग कर एक एनपीएम स्क्रिप्ट डीबग करने का सही तरीका क्या है?

मेरे NPM स्क्रिप्ट नज़र है:

"scripts": { 
    ... 
    "dev": "node tasks/runner.js", 
} 

तो मैं निम्नलिखित डिबग config बनाया:

{ 
    "version": "0.2.0", 
    "configurations": [ 
     { 
      "type": "node", 
      "request": "launch", 
      "name": "Launch Program", 
      "runtimeExecutable": "npm", 
      "cwd": "${workspaceRoot}", 
      "runtimeArgs": [ 
       "run", "dev" 
      ], 
      "port": 5858, 
      "stopOnEntry": true 
     } 
    ] 
} 

और जब मैं इसे आग स्क्रिप्ट चलाता है, लेकिन vscode कभी नहीं कनेक्ट करने में सक्षम है और मैं

Cannot connect to runtime via 'legacy' protocol; consider using 'inspector' protocol (timeout after 10000 ms).

मैं एक निरीक्षक प्रोटोकॉल जोड़ने की कोशिश की: त्रुटि मिलती है

0,123,
 { 
      "type": "node", 
      "request": "attach", 
      "name": "Attach (Inspector Protocol)", 
      "port": 9229, 
      "protocol": "inspector" 
     } 

और के माध्यम से NPM स्क्रिप्ट चलाने:

npm run dev --inspect 

और इस बार मैं त्रुटि मिलती है:

Ensure Node was launched with --inspect. Cannot connect to runtime process, timeout after 10000 ms - (reason: Cannot connect to the target: connect ECONNREFUSED 127.0.0.1:9229).

मुझे यकीन है कि कौन-सा भाग मैं याद कर रहा हूँ नहीं हूँ। डुप्लिकेट टैग

प्रति

संपादित मैं अन्य सवाल फिर से देखें: vscode के माध्यम से एक NPM स्क्रिप्ट डिबगिंग, लेकिन अन्य सवाल में विवरण और जवाब के रूप में विस्तृत और विशिष्ट नहीं हैं। अगर कोई विशिष्ट बनाम त्रुटि संदेश खोज रहा है, जिसमें मैंने भाग लिया था या कॉन्फ़िगर प्रकार मैंने किया था तो उन्हें आवश्यक रूप से स्तर का उत्तर विवरण प्राप्त नहीं होगा कि इस प्रश्न का चुना गया उत्तर देता है।

+1

संभावित डुप्लिकेट [VSCode से एनपीएम रन स्क्रिप्ट का उपयोग करके डीबग कैसे करें?] (Http://stackoverflow.com/questions/34835082/how-to-debug-using-npm-run-scripts-from-vscode) –

उत्तर

8

आपको npm script डीबग करने का प्रयास नहीं करना चाहिए क्योंकि आप वास्तव में जो चाहते हैं वह एनबीएम रन कमांड के साथ लॉन्च की गई स्क्रिप्ट पर अपना डीबगर संलग्न करना है (एनपीएम यहां केवल एक कार्य धावक के रूप में उपयोग किया जाता है)।

{ 
    "version": "0.2.0", 
    "configurations": [ 
     { 
     "type": "node", 
     "request": "launch", 
     "name": "Launch Program", 
     "program": "${workspaceRoot}/tasks/runner.js" 
     } 
    ] 
} 

आप वास्तव में इसे का उपयोग करते हुए NPM स्क्रिप्ट है, तो आप निम्न कॉन्फ़िगरेशन का उपयोग कर सकते हैं:

{ 
    "type": "node", 
    "request": "launch", 
    "name": "Launch via NPM", 
    "runtimeExecutable": "npm", 
    "windows": { 
    "runtimeExecutable": "npm.cmd" 
    }, 
    "runtimeArgs": [ 
    "run-script", 
    "dev" 
    ], 
    "port": 5858 
} 

लेकिन आप यह भी change करने के लिए है अपनी स्क्रिप्ट आदेश (एक डिबग पोर्ट निर्दिष्ट)

"scripts": { 
    "dev": "node --nolazy --debug-brk=5858 tasks/runner.js" 
    }, 

आप गियर आइकन पर क्लिक करके और एक का चयन करके विभिन्न डीबग कॉन्फ़िगरेशन का पता लगा सकते हैं। Node.js डिबगिंग के बारे में

enter image description here

अधिक VS Code documentation में पाया जा सकता।

+0

बहुत बढ़िया! उत्तर और विस्तृत उत्तर के लिए धन्यवाद। मैं इसकी सराहना करता हूं। –

संबंधित मुद्दे