我有一个看起来像这样的monorepo,
- myapp
- packages
- web
- components
- libraries
应用程序的webroot是myapp/packages/web
,当我在那个文件路径中运行yarn serve
时,我得到了运行的vue应用程序,我想做的是调试我的vscode中的代码,但我似乎不能设置断点。
我的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": "pwa-chrome",
"request": "launch",
"name": "webapp",
"url": "http://localhost:8081",
"webRoot": "${workspaceFolder}",
"breakOnLoad": true,
"sourceMapPathOverrides": {
"webpack:///./*": "${webRoot}/*"
},
"skipFiles": [
"${workspaceFolder}/node_modules/**/*"
]
}
]
}
如果我在myapp/packages/web/src/components/MyComponent.vue
中设置一个断点,vscode告诉我,
无法设置某些断点
有什么原因吗?这个项目是一个Lerna mono repo,所以我也从packages/components
和packages/library
中提取代码。
1条答案
按热度按时间c9qzyr3d1#
结构和网站路径在monorepo中是不同的,在我的例子中,我使用WebPack在TypeScript库中工作,它花了很多试验和错误。有很多事情会影响调试器,我遵循了这些
.scripts
对我找到正确的路径覆盖有很大帮助.scripts
感到困惑,您可以查看我不久前发布的这个旧评论,它有一个打印屏幕package.json
中添加了browser
属性,并确保您还设置了在webpack.config.js
中定义的mainFields
(请参阅文档)属性,它才完全工作browser
属性可能会导致一些Web应用程序出现问题(在我的例子中就是这样),我有一个脚本,当发布一个新的版本并在发布后将其放回时,该脚本会删除此属性第一个
我的monorepo结构与您的不同,但我的最终
launch.json
设置可以在下面看到我的结构
我的
launch.json
配置如下(这里是我自己的launch.json
设置)总之,你的配置和我的不同,运行
.scripts
应该能帮助找到正确的覆盖路径,我不知道还有其他方法可以找到它们。您可以看看我开放源代码项目Slickgrid-Universal,它是一个TypeScript/WebPack Lerna monorepo,(Lerna-Lite monorepo更精确)。希望这能帮上一点忙