【发布时间】:2018-05-24 21:15:17
【问题描述】:
大家好!
我正在使用 VSCode 与 lerna 一起在 monorepo 中处理 OpenSource 项目,我想提供一个包含轻松贡献所需的工具。
为了以一种对我来说看起来很干净的方式来执行此操作,我将我的 monorepo 添加为我的工作台包中的 子模块。
这是一个我当前设置的链接: https://github.com/Aetherall/accounts-workbench
这个包的主要目标是为开发者提供一个工作调试器配置,它允许断点并遵循monorepo包源中的错误堆栈。
我成功地让 VSCode 读取了我的源映射。 事实上,我打开了跟踪选项,我在日志中看到 .map 文件已被解析。
但是, - 还有我的问题 - 当我触发错误时,调试器只会向我显示已转译的文件...
这是我的一个文件的日志示例(如果需要帮助我,我可以提供我的整个日志)
SourceMaps: sourcemap url parsed from end of generated content:
AuthenticationServicePassword.js.map
SourceMaps.getMapForGeneratedPath: Finding SourceMap for
/home/aetherall/Workspace/github/accounts/accounts-workbench/accounts/packages/Server/Authentication/Password/PasswordService/lib/AuthenticationServicePassword.js by URI:
AuthenticationServicePassword.js.map
SourceMaps.loadSourceMapContents: Reading local sourcemap file from
/home/aetherall/Workspace/github/accounts/accounts-workbench/accounts/packages/Server/Authentication/Password/PasswordService/lib/AuthenticationServicePassword.js.map
这是我的调试器配置:
{
"type": "node",
"request": "launch",
"name": "Start dev server",
"program": "${workspaceRoot}/config/start.js",
"protocol": "inspector",
"sourceMaps": true,
"cwd": "${workspaceRoot}",
"outFiles": [
"${workspaceRoot}/dist/**/*.js",
"${workspaceRoot}/**/lib/**/*.js",
"!**/node_modules/**/*",
],
"skipFiles": ["${workspaceRoot}/node_modules/**/*", "<node_internals>/**/*.js"],
"smartStep": true,
"trace": "sm"
},
我正在使用 webpack 来捆绑工作台包(不是 monorepo)和 tsc 在我的 monorepo 子模块中使用 sourceMaps 转译 JavaScript 中的 typescript 包
如果需要,我当然可以添加更多信息
感谢您在这方面帮助我! 我真的不明白为什么调试器不使用 sourceMaps ...
如果你有解决办法,请给我一些关于问题的解释
【问题讨论】:
标签: javascript typescript debugging visual-studio-code source-maps