gpt4 book ai didi

json - 如何在 webpack-dev-server 中使用 VS Code 调试器(忽略断点)

转载 作者:IT老高 更新时间:2023-10-28 12:51:33 44 4
gpt4 key购买 nike

我只想让 VS Code 的调试器与 webpack-dev-server 一起工作,而不忽略我的断点。

现在,webpack-dev-server 从内存中提供捆绑的文件,而如果我理解正确的话,VS Code 调试器会在磁盘上搜索它们(...或者不是?...)

因此,每当我设置断点时,我都会感到害怕

断点被忽略,因为找不到生成的代码(源映射问题?)

现在,我能找到的每个相关问题都主要与 typescript 有关,而不是 webpack-dev-server 从内存中提供服务这一事实。我没有使用 typescript 。似乎人们要么没有使用 webpack-dev-server,要么我错过了一些明显的东西,我的钱花在了后者上。

这是我的 VS 代码 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
}
]
}

这些是我的 webpack.config.js

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

我尝试了对 launch.json 的各种修改,但无济于事,所以我只是将其粘贴为原版形式。

请注意,output.path 仅在有生产构建并且文件被喷到磁盘时使用。

以下是服务页面中文件的结构:

enter image description here

这是我在开发中运行的命令

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

最后,这是来自跟踪文件的相关 block

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"]

最佳答案

根据我的经验(大约 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,

我刚刚更新/修复了我的 repo,所以现在应该绑定(bind) TypeScript 断点。

https://github.com/marckassay/VSCodeNewProject

关于json - 如何在 webpack-dev-server 中使用 VS Code 调试器(忽略断点),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46438471/

44 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com