MacOS VS Code 使用attach mode debug 前端项目

背景

之前一直用win,mac真的不熟,找了一圈方案就是为了直接在已打开的chrome上调试,launch模式下没有默认打开devtool,插件也全部没有,停止调试会关闭浏览器窗口,很不方便

基本参考how-to-make-chrome-always-launch-with-remote-debugging-port-flag

解决方法

attach mode需要在启动chrome时带上remote debugging port 参数,指定端口号,和attach mode指定的端口号一样才可以

macos和windows不同,无法更改快捷方式加启动参数,最后用命令行解决

  1. 创建sh文件,复制代码并保存
  2. 运行 mv start-chrome.sh /usr/local/bin/sc 移动到启动目录并改名
  3. 直接命令行执行sc即可
bash 复制代码
#!/usr/bin/env bash
/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --remote-debugging-port=9222&
  • 注释表示指定启动env路径,用env执行bash(在$path 中找bash),可以设置sh,也可以直接指定命令位置 #!/bin/bash

  • 最后加&表示后台运行,运行后关闭终端窗口也不会影响已打开的chrome

  • 创建application并在执行文件内复制shell脚本的做法疑似会被m2芯片识别为x86程序,最终虚拟机启动,会导致chrome非常卡,无法正常使用(本人很菜,可能有简单的xcode编译swift执行shell之类的解决方案,欢迎共享)

  • 终端 terminal 搜ter快速打开

  • 执行命令之前,现有的chrome需要command + Q 完全退出,否则会被复用,无法打开远程调试

vsc attach配置

bash 复制代码
    {
      "name": "Attach to Chrome",
      "port": 9222,
      "request": "attach",
      "type": "chrome",
      "webRoot": "${workspaceFolder}",
      "url": "http://localhost:3000/*",
    },

依然存在的问题

  • f5调试开始之后,如果断开调试,已打开的页面会直接白屏,目前只能在vsc切换断点的状态来保证调试不影响正常编码
  • 开机后打开chrome仍然需要先打开终端,始终多了一步

最终效果

直接在vscode中击中断点,无需在chrome devtool中断点调试

chrome插件加载齐全,无需重新点击进入问题页面,devtool保持原样,不会丢失输出

相关推荐
子非鱼92112 分钟前
【JavaScript】函数:arguments对象
开发语言·前端·javascript
攻城狮幼崽20 分钟前
CSS;笔记分享;知识回顾
前端·css·笔记
GISer_Jing2 小时前
Vue知识大全【查漏补缺】
前端·vue.js
沐爸muba3 小时前
今日算法:蓝桥杯基础题之“星系炸弹”
前端·javascript·后端·算法·蓝桥杯
曼曼青青草3 小时前
基于uniapp的登录状态保持(APP免登录)
前端·uni-app·uniapp
程序员凡尘5 小时前
Vue.js 模板语法详解:插值表达式与指令使用指南
前端·javascript·vue.js
2401_862886785 小时前
游卡,三七互娱,得物,顺丰,快手,oppo,莉莉丝,康冠科技,途游游戏,埃科光电25秋招内推
java·c语言·前端·python·算法
爱码网页成品5 小时前
HTML静态网页成品作业(HTML+CSS)——非遗徽州木雕网页(6个页面)
前端·css·html
ma_no_lo6 小时前
Vue:组件化开发
前端·javascript·css·vue.js·html
努力挣钱的小鑫6 小时前
【React】从零开始搭建 react 项目(初始化+路由)
前端·react