2016-10-25 12 views
8

दौरान मैं एक codebase जहां मैं काफीडीबगर को अनदेखा करें; Node.js में बयान, डिबग सत्र

debugger; 

बयान की एक संख्या है की है। कभी-कभी मैं डीबग करता हूं, और मैं वास्तव में बस सभी डीबगर को छोड़ना चाहता हूं; कथन और केवल मैन्युअल रूप से सेट ब्रेकपॉइंट्स को जारी रखें जिन्हें मैंने डिबगिंग सत्र के लिए चुना है, क्या ऐसा करने के लिए नोड.जेएस के साथ मौका है?

दूसरे शब्दों में, मैं debugger; बयान दीर्घकालिक प्लेसहोल्डर होने पर विचार करना चाहता हूं, लेकिन कुछ डीबगिंग सत्रों के लिए मैं उन दीर्घकालिक प्लेसहोल्डर्स को अनदेखा करना चाहता हूं।

उत्तर

3

एक चाल मैं पहले उपयोग किए गए सिर्फ कोलाहल उपयोग करने के लिए है डिबगर बयान पट्टी:

देखें: https://www.npmjs.com/package/babel-plugin-remove-debugger

+0

क्या आपके पास गिटहब पेज का लिंक भी है? एनपीजेजे पर लिंक अब काम नहीं कर रहा है। – Marcs

6

यह क्रोम devtools के साथ किया जा सकता है।

आप कर सकते हैं:

node --inspect --debug-brk index.js 

कि कुछ इस तरह उत्पन्न करेगा:

chrome-devtools://devtools/remote/serve_file/@60cd6e859b9f557d2312f5bf532f6aec5f284980/inspector.html?experiments=true&v8only=true&ws=localhost:9229/9c2e4f37-4c3a-4477-b8da-2399c5d9819e 

बस कॉपी और पेस्ट करें कि क्रोम पर।

सभी ब्रेक पॉइंट को अक्षम/सक्षम करने का एक विकल्प है, और क्रोम आपके द्वारा पहले सेट किए गए सभी ब्रेकपॉइंट्स को याद रखेगा।

कृपया अधिक जानकारी के लिए: --inspect देखें।

+0

क्रोम आपको केवल 'डीबगर' कथन अक्षम करने की अनुमति नहीं देगा? उत्पत्ति के बावजूद, केवल एक साथ सभी को तोड़ देता है। –

3

त्वरित और गंदा तरीका (अपने डिबग के लिए हां, तो इसके ठीक वास्तव में) स्क्रिप्ट में निम्न स्क्रिप्ट की तरह कुछ रहना है/debugger.js

require.extensions['.js'] = function(module, filename) { 
    var content = fs.readFileSync(filename, 'utf8').replace(/debugger/g, [ 
    '(function() {', 
    ' if (__debugger) {', 
    ' debugger;', 
    ' }', 
    '})', 
    ].join('\n')); 

    module._compile(content, filename); 
}; 

तो node -r ./scripts/debugger

साथ नोड शुरू 210

यहां एक वैश्विक चर का उपयोग करना ताकि --inspect के साथ डीबगिंग करने पर इसे डीबगर प्रतिलिपि या क्रोम की प्रतिलिपि से सक्षम/अक्षम किया जा सके।

तकनीकी रूप से आवश्यक है। एक्सटेंशन को बहिष्कृत किया गया है, लेकिन इसे हटाया नहीं जा रहा है और यह यहां के रूप में कार्य करता है।

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