[javascript] 利用chrome的overrides实时调试线上js
chrome的开发者工具,在source选项卡下,可以看到js的源代码,有一个断点调试功能,就是在js的源代码行号那里点击一下,出现一个箭头,当再次刷新页面并且进行了相应操作时,就会停在断点的地方。我们可以查看相应的变量值,在右侧可以手动改变变量值,进行调试。
这个地方有一个缺点,就是没有办法对代码表达式等进行手动修改,修改完再去运行调试。如果我们在编辑窗口更改了js,他并不能真正的作用于线上代码。你保存了也没有任何效果,你刷新了页面,直接就没有了,没有办法像css的调试那样,可以完全实时修改代码和查看效果。
经过我一番折腾,终于找到了下面这样的方法。在sources下,点击>> ,有一个overrides的选项卡,他的功能是覆盖。把本地的代码覆盖线上的代码,当然只是我们本机测试起作用,并不是真正覆盖。要求是本地的目录与线上的目录完全一致,比如线上的top,域名,层层目录,文件名,要完全一致。
本地新建这些目录,并且把js也新建好,点击overrides后选中top目录,就可以真正的实时映射覆盖了,我们在本地js里修改代码,会被激活。
经过这样的功能,我就解决了之前那个正则验证的问题。因为在家办公,不方便上线js代码,但是用户又急着想提交数据,他那条数据不符合正则的规则提交不上去。我就把本地代码的正则先去掉,帮他提交到后端接口,后端的正则里没有验证这条规则。