2017-09-27 36 views
8

मेरी समस्या सरल है।वेबपैक-देव-सर्वर (ब्रेकपॉइंट्स अनदेखा) के साथ वीएस कोड डीबगर का उपयोग कैसे करें

मैं बस अपने ब्रेकपॉइंट्स को अनदेखा किए बिना वेबपैक-देव-सर्वर के साथ वीएस कोड के डीबगर काम करना चाहता हूं।

अब, webpack-देव-सर्वर, स्मृति से बंडल फ़ाइलों में कार्य करता है, जबकि, अगर मैं इस सही ढंग से समझ, डिस्क पर उनके लिए वी.एस. कोड डिबगर खोज (... या नहीं? ...)

नतीजतन, जब भी मैं एक ब्रेकपाइंट सेट मैं खतरनाक

Breakpoint ignored because generated code not found (source map problem?)

हर संबंधित सवाल मुझे लगता है ज्यादातर, और नहीं तथ्य यह है कि webpack-देव-सर्वर से कार्य करता है के साथ टाइपप्रति साथ करना था सकता है मिल अब, याद। मैं टाइपस्क्रिप्ट का उपयोग नहीं कर रहा हूँ। ऐसा लगता है कि लोग या तो वेबपैक-देव-सर्वर का उपयोग नहीं कर रहे हैं, या बाद में मेरे पैसे के साथ, मुझे कुछ स्पष्ट रूप से स्पष्ट याद आ रही है।

यह मेरा वी.एस. कोड launch.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": "chrome", 
     "request": "launch", 
     "name": "Launch Chrome against localhost", 
     "url": "http://localhost:8080", 
     "webRoot": "${workspaceRoot}", 
     "sourceMaps": true, 
     "trace": true 
    } 
    ] 
} 

है और इन कोई लाभ नहीं हुआ launch.json करने के लिए अपने webpack.config.js

devtool: 'cheap-module-source-map', 
    output: { 
    path: path.join(__dirname, 'dist'), 
    filename: '[name].[chunkhash].js' 
    }, 

मैं कोशिश की है विभिन्न संशोधनों से संबंधित लाइनें हैं, तो मैं बस चिपकाने हूँ यह वेनिला रूप में।

ध्यान दें कि output.path केवल तब उत्पादन होता है जब उत्पादन निर्माण होता है और फ़ाइलों को डिस्क पर फेंक दिया जाता है।

यहाँ फ़ाइलों की संरचना में सेवा पेज में है:

enter image description here

और यहाँ आदेश मैं

"scripts": { 
    "start": "webpack-dev-server --host 0.0.0.0 --config ./webpack.config.js" 
    }, 

अंत में विकास में चला रहा हूँ है, यहाँ एक प्रासंगिक है ट्रेस फ़ाइल से छिद्र

From target: {"method":"Debugger.scriptParsed","params":{"scriptId":"30","url":"http://localhost:8080/manifest.0ec68ebd5f0abf9b4cd4.js","startLine":0,"startColumn":0,"endLine":150,"endColumn":57,"executionContextId":2,"hash":"216099518F33D6091EC12795265804FB35669A30","executionContextAuxData":{"isDefault":true,"frameId":"18228.1"},"isLiveEdit":false,"sourceMapURL":"manifest.0ec68ebd5f0abf9b4cd4.js.map","hasSourceURL":false,"isModule":false,"length":5906}} 
Paths.scriptParsed: could not resolve http://localhost:8080/manifest.0ec68ebd5f0abf9b4cd4.js to a file under webRoot: e:\Mitch\Workspace\Projects\project-name. It may be external or served directly from the server's memory (and that's OK). 
SourceMaps.getMapForGeneratedPath: Finding SourceMap for http://localhost:8080/manifest.0ec68ebd5f0abf9b4cd4.js by URI: manifest.0ec68ebd5f0abf9b4cd4.js.map and webRoot: e:\Mitch\Workspace\Projects\project-name 
SourceMaps.loadSourceMapContents: Downloading sourcemap file from http://localhost:8080/manifest.0ec68ebd5f0abf9b4cd4.js.map 
To client: {"seq":0,"type":"event","event":"script","body":{"reason":"new","script":{"id":1,"source":{"name":"manifest.0ec68ebd5f0abf9b4cd4.js","path":"http://localhost:8080/manifest.0ec68ebd5f0abf9b4cd4.js","sourceReference":1001}}}} 
To client: {"seq":0,"type":"event","event":"scriptLoaded","body":{"path":"http://localhost:8080/manifest.0ec68ebd5f0abf9b4cd4.js"}} 
SourceMap: creating for http://localhost:8080/manifest.0ec68ebd5f0abf9b4cd4.js 
SourceMap: sourceRoot: 
SourceMap: sources: ["webpack:///webpack/bootstrap 7617f9bf7c8b0bc95159"] 
SourceMap: webRoot: e:\Mitch\Workspace\Projects\project-name 
SourceMap: no sourceRoot specified, using webRoot + script path dirname: e:\Mitch\Workspace\Projects\project-name\ 
SourceMap: mapping webpack:///webpack/bootstrap 7617f9bf7c8b0bc95159 => webpack\bootstrap 7617f9bf7c8b0bc95159, via sourceMapPathOverrides entry - "webpack:///*": "*" 
SourceMaps.scriptParsed: http://localhost:8080/manifest.0ec68ebd5f0abf9b4cd4.js was just loaded and has mapped sources: ["webpack\\bootstrap 7617f9bf7c8b0bc95159"] 

थी एस मुझे पागल कर रहा है, मैंने पिछले 3 घंटों में गुगलों को कुचलने के लिए खर्च नहीं किया है और यह वर्तमान में 5AM है।

+0

बस [मेरी परियोजना] (https://github.com/SukantGujar/config-server) पर यह कोशिश की गई है जो क्रोम लॉन्च स्निपेट को न्यूनतम संशोधनों के साथ साझा करके वेबपैक-देव-सर्वर का भी उपयोग करता है - { "प्रकार ":" क्रोम ", " अनुरोध ":" लॉन्च ", " नाम ":" स्थानीयहोस्ट के खिलाफ क्रोम लॉन्च करें ", " यूआरएल ":" http: // localhost: 3000 ", " वेब रूट ":" $ { workspaceRoot} ", " स्रोत मैप्स ": सत्य, " ट्रेस ": सत्य } मैं डीबग करने में सक्षम था। क्या आप इसे अपने अंत में आज़मा सकते हैं? मैंने wds शुरू करने के लिए 'यार्न रन स्टार्ट-यूई' के माध्यम से एक cmd सत्र में प्रोजेक्ट चलाया। फिर मैंने क्रोम लॉन्च करने के लिए बनाम कोड का इस्तेमाल किया। – hazardous

+0

नहीं, मेरे रिएक्ट घटकों में जो भी ब्रेकपॉइंट्स जोड़ते हैं, वे 'ब्रेकपॉइंट अनदेखा' के साथ खो जाते हैं क्योंकि उत्पन्न कोड नहीं मिला (स्रोत मानचित्र समस्या?) 'संदेश –

+1

यह मेरे रेपो के साथ परीक्षण करने में भी मदद कर सकता है। अन्यथा यदि आप एक न्यूनतम रेपो साझा कर सकते हैं, तो मैं इसे अपने अंत में आज़मा सकता हूं। यह किसी मशीन से जुड़े मुद्दों से इंकार कर देगा। – hazardous

उत्तर

1

मेरे अनुभव से (लगभग 15 मिनट पहले), यदि 'webpack.config.js' के संदर्भ संपत्ति के लिए कोई मान है, तो उसे '.vscode/launch.json' के लिए जिम्मेदार होना होगा।

एक उदाहरण के लिए, यदि 'webpack.config.js' निम्नलिखित है:

module.exports = { 
    context: path.resolve(__dirname, 'src'), 
    entry: './index.ts', 

फिर launch.json इस संदर्भ ('src') की जरूरत है भी:

"url": "http://localhost:8080/", 
"webRoot": "${workspaceRoot}/src", 
"sourceMaps": true, 

मैं बस मेरे रेपो को अपडेट/फिक्स किया गया है, इसलिए टाइपस्क्रिप्ट ब्रेकपॉइंट्स को बांधना चाहिए।

https://github.com/marckassay/VSCodeNewProject

मुझे आशा है कि मदद करता है।

+0

यह मेरे लिए काम करता है । मेरे पास 'संदर्भ था: webpack.config.js में संकल्प (__ dirname, "app") 'इसलिए मुझे' webRoot 'कुंजी में'/app 'जोड़ना पड़ा। ये मेरी सेटिंग्स हैं। '" विन्यास ": [ { " type ":" क्रोम ", " अनुरोध ":" देते हैं ", " नाम ":" Chrome अटैच करें ", " बंदरगाह ": 9222, " Webroot ":" $ {workspaceFolder}/एप्लिकेशन " }, { " type ":" क्रोम ", " अनुरोध ":" लांच ", " नाम ":" स्थानीय होस्ट के खिलाफ क्रोम लॉन्च ", " url ":" http: // लोकलहोस्ट: 5000 ", " वेब रूट ":" $ {वर्कस्पेसफ़ोल्डर}/ऐप " } ] 'मैंने' लोकहोस्ट के खिलाफ क्रोम लॉन्च 'के साथ डीबग किया। – frogec

+0

और मुझे devtool मान को भी बदलना पड़ा:' devtool: "स्रोत-नक्शा" ' – frogec

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