使用WebPack和Feathers进行节点调试

时间:2015-12-06 06:16:11

标签: javascript node.js npm webpack node-debugger

我加入了一个使用Node,Webpack,TypeScript和Express / Feathers构建产品的小组。其他开发人员知道他们在做什么,但我到目前为止只在客户端上使用过JavaScript,而且我只有几个小时的Node。试图弄清楚如何进行调试。具体来说,我的第一个任务是修复一些失败的API测试。

测试执行:

$npm run testserver

我的包裹有:

"scripts": {
....
"testserver": "webpack --config webpack.servertest.config.js && NODE_ENV=test mocha dist/serverTests.js",
....
},

例程是将打字稿编译成ES6,然后通过Babel转换为与Node兼容的ES5。

我尝试过:

$node-debug dist/serverTests.js

运行此节点调试调用时,结果与npm不同。请分享您的经验。

谢谢

1 个答案:

答案 0 :(得分:1)

根据您的设置,我建议您尝试基于Electron和Atom编辑器的Visual Studio Code,OS文本编辑器/ ide。

要解决您的问题,您可以使用两个vscode功能:

  • Debugging - 链接文档如何在vscode中调试
  • Tasks - 任务管理,例如查看以某些args等启动的webpack配置

首先,让我们尝试一下在您的情况下可能适用的简单解决方案(任务文件不需要):

添加到testserver "testserver": "webpack --config webpack.servertest.config.js && NODE_ENV=test mocha dist/serverTests.js --debug-brk", 的末尾,它用于node.js,brk中的调试 - 它只是在第一行停止执行。

npm run testserver

现在,当您Debugger listen on port 5858时,mocha以调试模式启动,在控制台中,您会看到类似{ "version": "0.1.0", "configurations": [ { "name": "Attach", // or e.g. "Mocha Debug" "type": "node", "request": "attach", "port": 5858 } ] }

的内容

第二步,在vscode中你需要添加一些道具(端口5858)到 launch.json - 阅读部分我在上面提到的文档调试:

 original -> result
  "5XqaLB" -> "5anLB"  
  "XqaLB" -> "anLB"  
  "qaLB" -> "qaLB"  
  "5Xq" -> "5Xq"

就是这样。在vscode中进入调试模式,将断点放在测试文件中,在下拉菜单中选择'Attach'或'Mocha Debug'并开始调试(F5)

P.S。此外,VS代码还具有一流的TypeScript支持,可能对您有所帮助。