Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript VSCode如何调试es6 mocha单元测试和jsx文件_Javascript_Reactjs_Mocha.js_Visual Studio Code - Fatal编程技术网

Javascript VSCode如何调试es6 mocha单元测试和jsx文件

Javascript VSCode如何调试es6 mocha单元测试和jsx文件,javascript,reactjs,mocha.js,visual-studio-code,Javascript,Reactjs,Mocha.js,Visual Studio Code,我设法达到了我的断点,但我有几个问题 代码在es5中,无法调试 它只使用.js命中断点。我需要它来处理.jsx文件 Mocha.opts似乎根本不适用于此。我尝试过添加--编译器jsx:babel register,并将.js重命名为.jsx,断点不再被击中 摩卡咖啡选项似乎完全停止了它的工作: --require babel-register --require test/util/dom.js --require expect --compilers jsx:babel-register

我设法达到了我的断点,但我有几个问题

  • 代码在es5中,无法调试
  • 它只使用.js命中断点。我需要它来处理.jsx文件
  • Mocha.opts似乎根本不适用于此。我尝试过添加
    --编译器jsx:babel register
    ,并将.js重命名为.jsx,断点不再被击中
摩卡咖啡选项似乎完全停止了它的工作:

--require babel-register
--require test/util/dom.js
--require expect
--compilers jsx:babel-register
Launch.json

{
  "version": "0.2.0",
  "configurations": [
    {
      "request": "launch",
      "name": "Debug Mocha Test",
      "type": "node",
      "program": "${workspaceRoot}/node_modules/mocha/bin/_mocha",
      "args": [
        "test/**/*.spec.js", //I need to get this working with .jsx files
        "--require", "babel-register"
        ],
      "cwd": "${workspaceRoot}",
      "runtimeExecutable": null,
      "env": { }
    }
  ]
}
{
  "version": "0.2.0",
  "configurations": [
    {
      "request": "launch",
      "name": "Debug Mocha Test",
      "type": "node2",
      "program": "${workspaceRoot}/node_modules/mocha/bin/_mocha",
      "args": [
        "test/**/*.spec.jsx",
        "--colors", "--no-timeouts"
        ],
      "cwd": "${workspaceRoot}",
      "runtimeExecutable": null,
      "env": { }
    }
  ]
}

原来这是节点调试器的一个bug。我通过更改以下内容修复了所有问题:

“类型”:“节点”
“类型”:“节点2”

Launch.json

{
  "version": "0.2.0",
  "configurations": [
    {
      "request": "launch",
      "name": "Debug Mocha Test",
      "type": "node",
      "program": "${workspaceRoot}/node_modules/mocha/bin/_mocha",
      "args": [
        "test/**/*.spec.js", //I need to get this working with .jsx files
        "--require", "babel-register"
        ],
      "cwd": "${workspaceRoot}",
      "runtimeExecutable": null,
      "env": { }
    }
  ]
}
{
  "version": "0.2.0",
  "configurations": [
    {
      "request": "launch",
      "name": "Debug Mocha Test",
      "type": "node2",
      "program": "${workspaceRoot}/node_modules/mocha/bin/_mocha",
      "args": [
        "test/**/*.spec.jsx",
        "--colors", "--no-timeouts"
        ],
      "cwd": "${workspaceRoot}",
      "runtimeExecutable": null,
      "env": { }
    }
  ]
}
摩卡咖啡选择:

--require babel-register
--require test/util/dom.js
--require expect
--compilers jsx:babel-register
答案取自

您还需要根应用程序中带有
“retainLines”:true的.babelrc文件。下面是我的.babelrc文件,例如:

{
    "presets": [
        "es2015",
        "stage-2",
        "react"
    ],
    "plugins": [
        "transform-es2015-modules-umd"
    ],
        "retainLines": true
}

如果您得到了错误的选项--inspect=…
,请尝试安装较新版本的节点。

对于当前版本的vscode,您可以使用“type”:“node”,然后添加“protocol”:“inspector”。但是这个答案让我很兴奋——谢谢
“retainLines”:true
是帮助我的一条信息