调试方法
Chrome调试
在chrome上既可以调试Android也可以调试IOS的网页内容,但是调试Android和IOS略微不同,IOS需要借用适配器才能在chrome中调试
注意:真机设备要保证和PC在同一局域网下
- 打开chrome界面
- 连接后调试掘金移动端界面
Android
- 在Android设备上,打开"设置" -> "关于手机" -> "软件信息",然后连续点击"构建号"7次以启用"开发者选项"。
- 返回到"设置"菜单,你应该能看到一个新的"开发者选项"菜单。打开它,然后启用"USB调试"选项。
- 使用USB线连接你的Android设备和你的开发机。
- 在你的开发机上,打开Chrome浏览器,然后在地址栏输入
chrome://inspect
并回车。 - 在"chrome://inspect/#devices"页面,你应该能看到你的Android设备和设备上打开的Chrome标签页列表。点击你想要调试的页面旁边的"inspect"链接。
- 此时,一个新的Chrome DevTools窗口会打开,你可以在这里进行调试。
IOS(安装RemoteDebug iOS Webkit Adapter适配器)
-
安装RemoteDebug iOS WebKit Adapter
npm install -g remotedebug-ios-webkit-adapter
-
在你的iOS设备上,打开"设置" -> "Safari" -> "高级",然后启用"Web检查器"。
-
使用USB线连接你的iOS设备和你的开发机。
-
在终端窗口中运行以下命令以启动RemoteDebug iOS WebKit Adapter
remotedebug_ios_webkit_adapter --port=9000
-
打开Chrome浏览器,然后在地址栏输入
chrome://inspect
并回车。 -
点击"Configure"按钮,然后在弹出的对话框中添加
localhost:9000
,然后点击"Done"。 -
在"chrome://inspect/#devices"页面,你应该能看到你的iOS设备和设备上打开的Safari标签页列表。点击你想要调试的页面旁边的"inspect"链接。
-
此时,一个新的Chrome DevTools窗口会打开,你可以在这里进行调试
总结:
- 优势:方便快捷,无需额外安装工具,可以模拟各种设备和视口尺寸,提供丰富的调试功能(如网络、性能、存储等)。
- 劣势:模拟的环境可能与真实设备有所差异,不能完全替代真机测试
Safari调试(仅适用于MAC上调试ios)
- 在你的iOS设备上,打开"设置" -> "Safari" -> "高级",然后启用"网页检查器"。
- 使用USB线连接你的iOS设备和你的Mac。
- 在你的Mac上,打开Safari。
- 在Safari的"偏好设置"中,选择"高级"标签,然后在底部勾选"在菜单栏中显示'开发'菜单"。
- 打开"开发"菜单,你应该能看到你的iOS设备名。如果你的设备上有打开的Safari标签页,它们会在设备名下面的子菜单中显示。
- 选择你想要调试的标签页,此时,一个新的Web检查器窗口会打开,你可以在这里进行调试。
总结:
- 优势:
- 原生支持: Safari是Apple的产品,因此它对iOS设备有原生支持,可以提供最准确的调试环境。
- 功能丰富: Safari的开发者工具提供了丰富的调试功能,包括元素检查、网络监控、性能分析、JavaScript调试等。
- 无需额外安装: 如果你已经有了一个Mac和一个iOS设备,你不需要安装任何额外的软件就可以开始调试。
- 劣势:
- 平台限制: Safari只能在Mac上运行,这意味着如果你没有Mac,你就不能使用Safari进行调试。
- 版本同步: 为了避免兼容性问题,你需要确保你的Mac上的Safari版本和你的iOS设备上的Safari版本相同或者接近。MAC版本过低也无法调试
- 设备连接: 你需要使用USB线连接你的iOS设备和你的Mac,这可能会限制你的移动性。
vConsole、eruda等库调试
-
安装vConsole
npm install vconsole
-
在你的项目中引入vConsole
import VConsole from 'vconsole'; // 注意:vConsole主要用于开发和调试阶段,不建议在生产环境中使用。你可以通过环境变量或者其他方式来控制vConsole的启用和禁用 if (process.env.NODE_ENV === 'development') { new VConsole(); }
在项目里安装了vconsole之后就可以利用它来对手机端的web进行调试了
- 总结
- 优势:
- 易于安装和使用: vConsole可以通过npm或yarn轻松安装,并且在项目中的使用也非常简单。
- 无需额外设备: vConsole直接在移动设备的浏览器中运行,无需连接到电脑或使用其他调试工具。
- 功能丰富: vConsole提供了丰富的调试功能,包括查看console日志、网络请求、localStorage和cookies等。
- 劣势:
- 可能影响页面布局: vConsole的控制台界面可能会覆盖页面的一部分,影响页面布局。
- 安全性问题: 如果在生产环境中启用vConsole,可能会暴露敏感信息,因此需要确保只在开发和调试阶段使用。
- 调试能力有限: 相比于桌面浏览器的开发者工具,vConsole的调试能力有限。例如,它无法进行性能分析或JavaScript断点调试。
- 优势:
Whistle抓包
- 安装Whistle
npm install -g whistle
- 启动Whistle。在终端中运行以下命令:
W2 start
- 在你的移动设备上,设置HTTP代理。代理服务器地址设置为你的开发机的IP地址,端口设置为Whistle的端口(默认为8899)
- 打开Whistle的web界面。在你的开发机的浏览器中,输入
http://localhost:8899
并回车 - 在Whistle的web界面中,你可以设置规则来拦截和修改HTTP请求和响应。
- 注意:在进行真机调试时,确保你的移动设备和你的开发机在同一个局域网内,以便你的移动设备可以访问到你的开发机的IP地址。
- 总结
- 优势
- 功能丰富: Whistle提供了丰富的网络调试功能,包括请求拦截和修改、模拟服务器响应、https抓包等。
- 跨平台: Whistle是基于Node.js的,因此它可以在任何支持Node.js的平台上运行,包括Windows、Mac和Linux。
- 易于安装和使用: Whistle可以通过npm轻松安装,并且使用也相对简单。
- 劣势
- 网络依赖: Whistle需要在网络环境中运行,如果网络环境不稳定,可能会影响调试效果。
- 配置复杂: Whistle的规则配置相对复杂,需要一定的学习成本。
- 安全性问题: Whistle的调试信息通过网络传输,如果网络环境不安全,可能会暴露敏感信息
- 优势
Weinre调试
- 安装Weinre
npm install -g weinre
- 启动Weinre服务器
weinre --boundHost -all-
- 在你的网页中引入Weinre的客户端脚本。将以下代码添加到你的HTML文件的
<head>
标签中, 其中,[your-ip-address]
应替换为你的开发机的IP地址。<script src="http://[your-ip-address]:8080/target/target-script-min.js#anonymous"></script>
- 打开Weinre的web界面。在你的开发机的浏览器中,输入
http://localhost:8080
并回车 - 在Weinre的web界面中,你应该能看到你的网页已经连接到Weinre服务器。点击你的网页,然后你可以在右侧的面板中进行调试
- 总结
- 优势
- 跨平台: Weinre是基于Web的,因此它可以在任何支持Web的设备上运行,包括iOS、Android、Windows Phone等。
- 无需额外设备: Weinre直接在移动设备的浏览器中运行,无需连接到电脑或使用其他调试工具。
- 易于安装和使用: Weinre可以通过npm轻松安装,并且在项目中的使用也非常简单。
- 劣势
- 调试能力有限: 相比于桌面浏览器的开发者工具,Weinre的调试能力有限。例如,它无法进行性能分析或JavaScript断点调试。
- 网络依赖: Weinre需要在网络环境中运行,如果网络环境不稳定,可能会影响调试效果。
- 安全性问题: Weinre的调试信息通过网络传输,如果网络环境不安全,可能会暴露敏感信息。
- 优势
总结
方法 | 优势/劣势 | 推荐度 |
---|---|---|
Chrome调试 | 方便快捷,无需额外安装工具,功能强大,便于调样式,不能完全模拟真机 | 🌟🌟🌟🌟🌟 |
vConsole、eruda等库调试 | 易于安装和使用,功能丰富,但调试能力有限 | 🌟🌟🌟🌟 |
Whistle抓包 | Whistle提供了丰富的网络调试功能,但是不能调试移动端样式,配置复杂,比较适用于需要网络代理等特定场景使用 | 🌟🌟🌟🌟 |
Weinre调试 | 易于安装和使用,但是调试能力有限,不稳定 | 🌟🌟🌟 |