【问题标题】:`binding.pry` for javascript console?javascript控制台的`binding.pry`?
【发布时间】:2023-03-20 01:02:02
【问题描述】:

在 Ruby 中,我可以在代码中的任何位置键入 binding.pry,在执行时,我的控制台将进入一个 REPL,我可以在其中访问所有局部变量、进行更改并执行任意代码。

例子:

# foo.rb
require 'pry'
n = 5
binding.pry
puts "your number is #{n}"

当我运行它时:

$ ruby foo.rb

From: /Users/cgenco/Desktop/foo.rb @ line 4 :

    1: # foo.rb
    2: require 'pry'
    3: n = 5
 => 4: binding.pry
    5: puts "your  number is #{n}"

[1] pry(main)> n = 100
=> 100
[2] pry(main)> exit
your number is 100

这是一个令人难以置信的调试工具,特别是对于需要复杂设置的情况:我可以在需要更多代码的地方输入binding.pry,搞砸,找出需要编写的代码,然后添加抛光代码到实际的源代码。

是否有类似 pry 的 JavaScript 工具可以在浏览器控制台中运行?

【问题讨论】:

    标签: javascript ruby read-eval-print-loop pry


    【解决方案1】:

    大多数浏览器都有与此非常相似的开发人员工具。

    例如,在 Chrome 中,按 Ctrl+Shift+I 以调出开发者工具面板。单击“Sources”选项卡,您可以浏览任何已加载的 JavaScript 文件。从这里您可以通过单击左边距来设置断点。现在,当您重新加载页面时,JavaScript 执行将在您指定的行暂停。

    在面板的底部有一个“显示控制台”按钮,它会打开一个 REPL,你可以玩弄。

    这是我刚才提到的所有内容的截图:

    在 Firefox、IE、Safari 和 Opera 中有类似的工具。只需 Google 搜索“开发者工具 [您选择的浏览器]”即可了解更多信息。

    【讨论】:

    • 太棒了,非常感谢,这是我第一次设法按照说明如何在js中设置类似pry的控制台,其他人只是困惑。
    【解决方案2】:

    在您的代码中尝试使用debugger; 作为this answer suggests。您的浏览器开发工具必须打开。

    【讨论】:

    • 啊完美!这正是我一直在寻找的 - 不敢相信我还不知道它。
    • 未来自我注意:在你的节点脚本中添加debugger,然后用node inspect SCRIPT.js运行它,然后输入“cont”并回车,然后当你的脚本点击@987654325 @line 它会停止。要输入 REPL,请输入“repl”并回车。
    【解决方案3】:

    我想提一下,Node.js 有一个好东西叫做 Debugger。

    超短教程:

    1. 是这样运行您的应用程序:

    node debug appname.js

    1. 而不是通常的

    node appname.js

    帮自己一个忙,请参阅:https://nodejs.org/api/debugger.html 我发布此内容是因为在找到调试器工具之前,我发现了很多需要依赖关系的方法!

    【讨论】:

      【解决方案4】:

      在问了这个问题 9 年后,我偶然发现了我正在寻找的东西:pryjs

      使用import pry from "pryjs"const pryjs = require("pryjs") 包含它,然后使用eval(pry.it) 而不是binding.pry 调用它。

      它会按照您的预期工作。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-08-18
        • 1970-01-01
        • 1970-01-01
        • 2021-05-16
        相关资源
        最近更新 更多