在Chrome中调试带有逗号的小型JavaScript函数 出身背景
我试图调试的生产环境中有一个问题。我无法放入在Chrome中调试带有逗号的小型JavaScript函数 出身背景,javascript,google-chrome,debugging,Javascript,Google Chrome,Debugging,我试图调试的生产环境中有一个问题。我无法放入debugger或console.log语句,因为该问题仅在生产环境中发生。我可以在Chrome中查看经过修饰的代码 源与缩小 当我看源代码时,它看起来是这样的: functionWhatever = function (text, copy) { var range; if (document.selection) { range = document.body.createTextRange(); r
debugger
或console.log
语句,因为该问题仅在生产环境中发生。我可以在Chrome中查看经过修饰的代码
源与缩小
当我看源代码时,它看起来是这样的:
functionWhatever = function (text, copy) {
var range;
if (document.selection) {
range = document.body.createTextRange();
range.moveToElementText(clipboardtext);
range.select();
} else if (window.getSelection) {
range = document.createRange();
range.selectNodeContents(clipboardtext);
window.getSelection().removeAllRanges();
window.getSelection().addRange(range);
...
},
u = function(e, t) {
var n;
document.selection ? (n = document.body.createTextRange(),
n.moveToElementText(e),
n.select()) : window.getSelection && (n = document.createRange(),
n.selectNodeContents(e),
window.getSelection().removeAllRanges(),
window.getSelection().addRange(n)),
...
},
但在Chrome的开发工具中,经过修饰的代码如下所示:
functionWhatever = function (text, copy) {
var range;
if (document.selection) {
range = document.body.createTextRange();
range.moveToElementText(clipboardtext);
range.select();
} else if (window.getSelection) {
range = document.createRange();
range.selectNodeContents(clipboardtext);
window.getSelection().removeAllRanges();
window.getSelection().addRange(range);
...
},
u = function(e, t) {
var n;
document.selection ? (n = document.body.createTextRange(),
n.moveToElementText(e),
n.select()) : window.getSelection && (n = document.createRange(),
n.selectNodeContents(e),
window.getSelection().removeAllRanges(),
window.getSelection().addRange(n)),
...
},
问题
我无法在最小化代码中以逗号结尾的一行上设置断点。我如何(或是否有办法)调试这些行中的一行?您可以使用它在生产环境中调试JS文件
遵循以下步骤
- 按请求安装扩展名()
- 转到请求库()
- 上载与生产中的文件具有相同代码的缩小/非缩小文件。您将获得上传文件的url
- 转到规则页()
- 设置重定向规则并将生产url重定向到从库中获取的url李>
- 这将确保您的文件由浏览器而不是生产环境拾取李>
调试愉快 在Chrome开发工具中有一种本机实现的方法。对于函数链的每个部分,您都可以单步执行。例如,如果你有
a(),b(),c()
如果要调试c()
调用,可以
- 介入(F11)
- 跳出(F11档)
- 介入
- 走出去
c()
之前的状态(它可能会跳过赋值或非函数的内容)
因此,对于上面的示例,您只需在
var n上放置一个断点代码>行,然后开始执行单步执行,单步执行以到达要调试的代码点,然后使用控制台调试要检查的语句 我为之工作的公司不允许出于专有原因将代码上传到第三方网站。@shakin请求使用Google Drive存储您的文件,以便您的数据随身携带。即使现在您正在使用cdn托管Javascript,如果您使用上述方法,那么您将存储在您的Google驱动器中。