Javascript 如何调试Cordova的钩子?
我想知道是否有可能在Cordova中调试javascript钩子 我的钩子在准备前被触发。我的命令是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 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文件夹中,它不能以这种方式进行调试。希望它能帮助别人避免我整天的错误搜索。