我有一个 TypeScript 项目,并通过ts-jest使用 Jest进行测试。在 VS Code 中,我安装了插件vscode-jest。调试并不完全如我所愿:
Debugvscode-jest 生成的 CodeLens来启动调试会话我想这是因为 ts-jest 的工作方式。断点可能永远不会找到,因为测试是在 JS 文件而不是 TS 文件上运行的。
如果我在使用 Create React App 引导的 JS 项目中尝试相同的操作,我可以在源文件中设置断点,调试器将停止。这很有趣,因为这些源文件也是由 babel 编译的......
我想知道是否可以调整我的设置,以便调试器能够识别源文件中的断点。
在下面发布一些可能相关的文件:
jest.config.js
module.exports = {
transform: {
'^.+\\.tsx?$': 'ts-jest',
},
testRegex: '(/__tests__/.*|(\\.|/)(test|spec))\\.(jsx?|tsx?)$',
testPathIgnorePatterns: ['/dist/', '/node_modules/'],
moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'json', 'node'],
collectCoverage: false,
};
Run Code Online (Sandbox Code Playgroud)
tsconfig.json
{
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"declaration": true,
"outDir": "./dist",
"strict": true,
"noImplicitAny": true,
"strictNullChecks": true, …Run Code Online (Sandbox Code Playgroud) 我已ruby-debug-ide在 Visual Studio Code 中完成远程调试(我正在使用 Docker)的所有设置。docker-compose.yml我在启动ruby-debug-ide和 Rails 服务器中使用此命令:
rm -f /api/tmp/pids/server.pid && rdebug-ide --host 0.0.0.0 --port 1234 -- bin/rails server --port=3000 --binding=0.0.0.0
Run Code Online (Sandbox Code Playgroud)
然后在 vscode 中我有这个 launch.json 脚本:
{
"name": "Listen for rdebug-ide",
"type": "Ruby",
"request": "attach",
"cwd": "${workspaceRoot}",
"remoteHost": "127.0.0.1",
"remotePort": "1234",
"remoteWorkspaceRoot": "/app",
"showDebuggerOutput": true
}
Run Code Online (Sandbox Code Playgroud)
当我转到 vscode 并启动 launch.json 脚本时,我的 Rails 服务器以及调试器都会启动。但是当我停止/分离 launch.json 脚本时,rails 服务器崩溃了。
有没有办法独立启动我的 Rails 服务器ruby-debug-ide?我希望在不进行调试时能够访问我的 Rails 应用程序。是否可以做这样的事情:
# start my rails server
rm …Run Code Online (Sandbox Code Playgroud) ruby ruby-on-rails ruby-debug-ide visual-studio-code vscode-debugger
我正在尝试调试一个简单的 node.js 项目,使用 Chrome 命中断点
C:\node 中的文件结构很简单:
node_modules(文件夹)、package.json、server.js
我已经安装了扩展“Chrome 调试器”并构建了一个 launch.json 文件
{
"version": "0.1.0",
"configurations": [
{
"type": "chrome",
"request": "launch",
"name": "Launch Chrome",
"url":"http://localhost:8080/api",
"webRoot": "${workspaceFolder}",
}
]
}
Run Code Online (Sandbox Code Playgroud)
但是它不会遇到 server.js 文件中的断点。
我认为问题在于 webRoot 属性。
经过大量阅读和反复试验后,我最终无法弄清楚这一点。
任何帮助将不胜感激
从命令行使用 gdb,我可以在加载共享库时中断。知道我有共享库的源代码,如何在 VS Code 中获得相同的行为?
我之前在没有 SSL 代理的情况下从 VSCode 启动了 chrome,所以我猜这是我问题的根源。这是我的 VSCode launch.json 配置:
{
"name": "Launch Chrome",
"request": "launch",
"type": "pwa-chrome",
"url": "https://example.com:8000",
"webRoot": "${workspaceFolder}"
}
Run Code Online (Sandbox Code Playgroud)
我在监视模式下使用 webpack,该模式在端口 8000 上启动,并且我正在运行 Express https 服务器代理。
启动配置可以很好地启动 url,但它不会激活 VSCode 中的断点。
我找不到有关特定于 SSL 的启动配置的任何信息。
有什么我可以尝试让调试器正常工作并激活这些断点的方法吗?
谢谢!
我一直在尝试NextJS通过标记breakpoint. 我正在使用VSCode我的开发。
最初,我的launch.json就是这样。
{
"version": "0.2.0",
"configurations": [
{
"type": "chrome",
"request": "launch",
"name": "Launch Chrome against localhost",
"url": "http://localhost:3000",
"webRoot": "${workspaceFolder}"
}
]
}
Run Code Online (Sandbox Code Playgroud)
这很好用;但是,它不会命中任何服务器端代码,例如getStaticProps,getStaticPaths和getServerSideProps。
我发现这篇博文相信可以解决我的问题。所以我添加了一个脚本到package.json我的launch.json. 所以现在看起来像这样
package.json
{
"scripts": {
"debug": "node --inspect-brk ./node_modules/next/dist/bin/next"
}
}
Run Code Online (Sandbox Code Playgroud)
launch.json
{
"version": "0.2.0",
"configurations": [
{
"type": "chrome",
"request": "launch",
"name": "Launch Chrome against localhost",
"url": "http://localhost:3000",
"webRoot": "${workspaceFolder}"
},
{ …Run Code Online (Sandbox Code Playgroud) debugging breakpoints visual-studio-code next.js vscode-debugger
我在 nextjs 应用程序上遵循此处的指南。在 Windows 上使用 VSCode。
它说使用脚本:“dev”:“NODE_OPTIONS='--inspect' next dev”
这导致:
'NODE_OPTIONS' 不是内部或外部命令,也不是可运行的程序或批处理文件。
是的,我知道已经有一个同名的问题,但它已有 2.5 年的历史,有 8k 次观看,但没有被接受的答案。我无法评论以添加信息。随意将其标记为重复,但请至少将其链接到另一个问题的评论中。
那里的一个答案建议安装另一个(维护模式)依赖项并将其配置为更改环境变量。
这项研究和其他研究使我相信这里的环境变量存在问题。我不能手动设置它们吗?为什么下一个官方指南中没有提到这一点?如何设置正确的环境变量?
我知道我可以让 VSCode 在调试器下启动程序时提示我输入命令行参数,方法是在 launch.json 中指定如下内容:
{
"configurations": [
{
"name": "(gdb) Launch MyApp",
"type": "cppdbg",
"program": "MyApp",
"args": [ "${input:arg}" ],
}
],
"inputs": [
{
"type": "promptString",
"id": "arg",
"description": "Enter argument",
"default": "something"
},
]
}
Run Code Online (Sandbox Code Playgroud)
但是,这只允许我输入一个参数。要输入多个,我可以在args数组中有多个条目,每个参数一个。
不幸的是,当我想测试零到 N 命令行参数的不同组合时,这不会扩展,因为它需要在每次调用之前编辑 launch.json。
有没有办法让 VSCode 在一行中提示我输入所有命令行参数,就像我在终端上输入它们一样?
c++ command-line-arguments visual-studio-code vscode-debugger
我正在尝试在 vs 代码(mac os big sur)中使用调试器,但没有成功。我在 m1 macbook air 上。vs 代码内部人员版本。我已经尝试过所有这些 python 解释器:
3.9.6 - /opt/homebrew/bin/python3 3.9.1 - /usr/local/bin/python3 3.8.2 - /usr/bin/python3 2.7.16 - /usr/bin/python
我试过这个launch.json文件:
{
"version": "0.2.0",
"configurations": [
{
"name": "Python: Current File",
"type": "python",
"request": "launch",
"program": "${file}",
"console": "integratedTerminal"
}
]
}
Run Code Online (Sandbox Code Playgroud)
这是我总是得到的错误:
/usr/bin/env /usr/local/bin/python3 /Users/arch0n/.vscode-insiders/extensions/ms-python.python-2021.7.1053846006/pythonFiles/lib/python/debugpy/launcher 50295 -- /Users/arch0n/Desktop/py-w3schools/2.py
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/runpy.py", line 197, in _run_module_as_main
return _run_code(code, main_globals, None,
File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/runpy.py", line 87, in _run_code
exec(code, run_globals)
File "/Users/arch0n/.vscode-insiders/extensions/ms-python.python-2021.7.1053846006/pythonFiles/lib/python/debugpy/__main__.py", line …Run Code Online (Sandbox Code Playgroud) vscode-debugger ×10
debugging ×2
next.js ×2
node.js ×2
python ×2
breakpoints ×1
c++ ×1
homebrew ×1
https ×1
jestjs ×1
ruby ×1
typescript ×1