开发Chrome扩展——Node.js Debugger

Node.js Debugger

目录

  1. Node.js Debugger扩展展示及下载地址
  2. Node.js Debugger使用介绍
  3. Node.js Debugger开发思想
  4. 待改进
  5. 相关资料

1. Node.js Debugger扩展展示及下载地址

Node.js Debugger扩展展示

  1. 初始页面


    初始展示页面
  2. 操作失败页面


    操作失败页面

Node.js Debugger扩展下载地址

百度网盘地址:https://pan.baidu.com/s/1c1KLk5a

2. Node.js Debugger使用介绍

安装Chrome扩展

  1. 打开Chrome扩展程序面板。
    扩展工具程序面板入口

2.直接将的.crx文件拖拽到扩展程序面板中,添加扩展程序。
屏幕快照 2017-11-30 13.23.31.png
  1. 添加扩展程序成功,可以在工具栏看到我们扩展程序的图标(绿色小图标)。
    添加成功提示

Node.js Debugger扩展程序使用介绍

  1. 输入主机名和端口号,默认情况下主机名为localhost,端口号为9229,如果在启动node inspector时,你使用的不是--inspect,而是--inspect=127.0.0.1:8000,此时Chrome与node inspector的通信端口为8000,因此,你需要重新设置端口。
    情况一:
    使用--inspect参数
    此时,打开Chrome,点击扩展程序,直接点击调试即可。

情况二:

使用--inspect=ip:port参数

设置端口号9000

此时,就必须设置端口号,如果不设置点击调试的话,就会弹出弹出层,而不能正确访问调试页面。

使用过程中注意事项

  1. 确保node版本是7.x.x以上
    node inspector功能是在7.x.x版本以上才能使用。因此,如果当你点击调试按钮,弹出先标签页,但是页面一直在转圈,此时,你就要查看一下,是否是你的node版本太低了。

  2. 确保启动了node inspector,并且建议使用--inspect-brk来启动
    如果你使用--inspect启动node inspector,并且你调试的只是一个过程式的js,此时你的代码在调试之前就已经执行完,无法再进行调试,而是用--inspect-brk来启动,将在所有程序的开头开始调试,此时,你便可以在调试面板上添加断点进行调试。

  3. 端口号设置问题
    确定输入框中设置的端口号是否正确,并且端口号是否已经被占用。如果你设置的端口号已经已经被使用了,此时插件内部可能报错,但是并不会直接显示到插件展示页面上,因此,如果发现点击调试按钮不弹出弹出层,也不弹出新的标签页,请检查你的端口号是否被占用了。

  4. 一次调试完成后,不能直接刷新页面,开始下一轮调试
    此时需要重新启动新的node inspector,在按照上面的步骤打开页面,否则可能会出现,无法进行调试,或者无法打开调试页面的情况。

3. Node.js Debugger开发思想

Inspector clients must know and specify host address, port, and UUID to connect to the WebSocket interface. The full URL is ws://127.0.0.1:9229/0f2c936f-b1cd-4ac9-aab3-f63b0f33d55e, of course dependent on actual host and port and with the correct UUID for the instance.
Node.js v7+版本提供了一个inspector的功能,在使用node运行js程序时,可以添加--inspector打开这个功能。
该功能为Chrome DevTools提供了一个通信接口,这是的Node进程可以和Chrome DevTools使用websocket直接进行通信
同时,也提供了用户接口,用户可以通过访问
http://IP:port/json/list访问到这个接口的相关信息,其中webSocketDebuggerUrl就是Chrome DevTools和Node进程的websocket通信地址,而devtoolsFrontendUrl,就是我们可以访问的调试面板地址

[ {
  "description": "node.js instance",
  "devtoolsFrontendUrl": "chrome-devtools://devtools/bundled/inspector.html?experiments=true&v8only=true&ws=127.0.0.1:9000/ce3d915c-367e-4751-980c-a50cede6379d",
  "faviconUrl": "https://nodejs.org/static/favicon.ico",
  "id": "ce3d915c-367e-4751-980c-a50cede6379d",
  "title": "test.js",
  "type": "node",
  "url": "file:///Users/yyp/Desktop/test.js",
  "webSocketDebuggerUrl": "ws://127.0.0.1:9000/ce3d915c-367e-4751-980c-a50cede6379d"
} ]

因此我们通过http://IP:port/json/list返回数据中的devtoolsFrontendUrl字段,获取调试页面地址,然后在chrome插件中创建一个新的标签页,并且将该字段作为新标签页的url即可

4. 待改进

  1. 启动扩展程序时,第一个输入框被选中,出现蓝色背景。
  2. 未提供用户设置选项。

5. 相关资料

  1. node inspector 相关
    Debugging Guide: https://nodejs.org/en/docs/guides/debugging-getting-started/#debugging-guide
    Debugging Node.js Apps: https://nodejs.org/en/docs/inspector/
    如何在Chrome DevTools 中对Node程序进行调试: http://www.jianshu.com/p/3ed910d3866c

  2. Chrome 插件开发相关
    Chrome扩展及应用开发(首发版):http://www.ituring.com.cn/book/1421
    百度浏览器开发文档:https://chajian.baidu.com/developer/extensions/getstarted.html

  3. 源码
    github地址:https://github.com/DiligentYe/todo-list-chrome-extension/tree/nodejs-debugger

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,847评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,208评论 1 292
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,587评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,942评论 0 205
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,332评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,587评论 1 218
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,853评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,568评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,273评论 1 242
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,542评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,033评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,373评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,031评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,073评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,830评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,628评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,537评论 2 269

推荐阅读更多精彩内容