Javascript 如何调试Cordova的钩子?

Javascript 如何调试Cordova的钩子?,javascript,cordova,debugging,visual-studio-code,Javascript,Cordova,Debugging,Visual Studio Code,我想知道是否有可能在Cordova中调试javascript钩子 我的钩子在准备前被触发。我的命令是 cordova prepare ios 我目前使用VisualStudio代码,并且有一个插件Cordova tools用于在运行时调试应用程序。但我需要在构建时进行调试 有什么建议吗 PS:我所说的调试是真正的调试,也就是说,使用断点和变量显示等等。更新了2019年11月25日的答案 由于node inspector已被弃用,我现在将这样做: 打开chrome://inspect 在Chro

我想知道是否有可能在Cordova中调试javascript钩子

我的钩子在准备前被触发。我的命令是

cordova prepare ios
我目前使用VisualStudio代码,并且有一个插件Cordova tools用于在运行时调试应用程序。但我需要在构建时进行调试

有什么建议吗

PS:我所说的调试是真正的调试,也就是说,使用断点和变量显示等等。

更新了2019年11月25日的答案

由于node inspector已被弃用,我现在将这样做:

打开chrome://inspect 在Chrome浏览器中 运行node-inspect-inspect brk/path/to/node_modules/cordova/bin/cordova prepare从我的cordova应用程序项目的根目录开始,该项目包含我希望调试的钩子脚本 在Chrome选项卡中,按目标上的inspect以打开Chrome Dev Tools 在“文件系统”选项卡下,选择“将文件夹添加到工作区”,并选择我的Cordova项目中包含钩子脚本的目录 向我的钩子脚本添加断点 在Chrome开发工具中按Play继续并点击我的断点 原始答复2017年6月7日 以下是调试钩子脚本的方法:

安装节点检查器:npm安装-g节点检查器 从Cordova项目根目录,通过节点检查器运行Cordova命令,并使用适当的选项触发我的钩子脚本,例如:

节点调试/path/to/node_模块/cordova/bin/cordova准备

当节点检查器在Chrome选项卡中打开时,浏览源以查找钩子脚本

添加断点 按Resume继续执行到断点 然后,您可以交互式地调试钩子脚本:
通过将此启动配置放在项目根目录下的.vscode/launch.json文件中,您可以在VS代码中轻松调试Cordova钩子,而无需打开浏览器:

{
  "version": "0.2.0",
  "configurations": [
    {
      "type": "node",
      "request": "launch",
      "name": "Cordova Prepare",
      "program": "C:/Program Files/nodejs/node_modules/cordova/bin/cordova", // This is for winx64 adjust it to your platform
      "args": ["prepare"]
    }
  ]
}

之后,只需在钩子的文件中放置一个断点并点击F5,或者转到调试和运行端菜单,然后按Cordova Prepare文本旁边顶部的Play按钮。

效果良好。我可以一步一步地执行一个钩子。谢谢Dave分享这个!是否可以调试离子2项目中的cordova钩子?当我尝试节点调试ionic cordova build android时,我得到的总是重复进程===>错误:listen EADDRINUSE::5858。有解决方案吗?在我的场景中,它没有击中脚本中的断点。我需要将config.xml中的钩子标记移动到config.xml的根级别。它在平台标签内不起作用。之后,我需要在脚本中检查当前是否正在运行ios:if ctx.opts.platforms.indexOf'ios'<0。我编写的脚本还以节点样式编写。意味着使用module.exports。在hooks文件夹中使用钩子标记而不是钩子很重要。在hooks文件夹中,它不能以这种方式进行调试。希望它能帮助别人避免我整天的错误搜索。