Javascript 在Scratch 3源代码中设置断点

Javascript 在Scratch 3源代码中设置断点,javascript,node.js,mit-scratch,Javascript,Node.js,Mit Scratch,我以前使用过Scratch2.0源代码,它主要基于动作脚本。我现在想深入研究3.0代码,它已经转移到JavaScript中,但在这方面没有什么经验。我在Windows10中工作 以下是我在本地准备代码的步骤- git clone https://github.com/llk/scratch-gui git clone https://github.com/llk/scratch-vm cd scratch-vm npm install npm link npm run watch cd ..

我以前使用过Scratch2.0源代码,它主要基于动作脚本。我现在想深入研究3.0代码,它已经转移到JavaScript中,但在这方面没有什么经验。我在Windows10中工作

以下是我在本地准备代码的步骤-

git clone https://github.com/llk/scratch-gui
git clone https://github.com/llk/scratch-vm

cd scratch-vm
npm install
npm link
npm run watch

cd ..\scratch-gui
npm install
npm link scratch-vm
npm start
然后打开
http://localhost:8601
在Chrome浏览器中

这很好,允许我修改vm代码(在VS代码中)并“立即”在浏览器中查看结果。我希望能够做的是设置断点,以便能够单步执行、设置手表等

我假设我需要设置
launch.json
来完成此操作,但我尝试的所有配置都会导致编译成功,然后在尝试连接到运行时进程时超时

这是我正在使用的
launch.json
文件(尽管我尝试了很多变体,它们都产生了相同的结果)

{
“版本”:“0.2.0”,
“配置”:[
{
“类型”:“节点”,
“请求”:“启动”,
“名称”:“启动计划”,
“runtimeExecutable”:“npm”,
“AutoAttachChildProcess”:正确,
“runtimeArgs”:[“开始”,“--”],
“协议”:“检查员”,
“滑雪板”:[
"/**"
],
“源地图”:正确,
“超时”:30000,
“outputCapture”:“std”,
“地址”:http://localhost",
“端口”:8601
}
]
}

我意识到我很可能错过了一个步骤或犯了一个明显的错误,但任何指向正确方向的指针都将非常感谢。

我对您所做的工作几乎没有经验,但如果有帮助,JavaScript断点关键字是:

调试器

这是使用Visual Studio调试Scratch 3.0的第一步。我制定了使断点在多个工作区上工作所需的附加步骤,现在它们已添加到官方页面的标题下步骤3:多个根工作区的更多源映射

{
    "version": "0.2.0",
    "configurations": [
        {
            "type": "node",
            "request": "launch",
            "name": "Launch Program",
            "runtimeExecutable": "npm",
            "autoAttachChildProcesses": true,
            "runtimeArgs": ["start", "--"],
            "protocol": "inspector",
            "skipFiles": [
                "<node_internals>/**"
            ],
            "sourceMaps": true,
            "timeout": 30000,
            "outputCapture": "std",
            "address": "http://localhost",
            "port": 8601
        }
    ]
}