binding.pry 不适用于命令 bin/dev

问题描述 投票:0回答:3
如果我使用

binding.pry

 命令启动服务器,
bin/dev
不起作用(控制台输入不可用)。它只适用于
bin/rails s
命令。 我知道它与工头和 Procfile.dev 有关,但我不知道如何。 这是一个错误还是应该是这样的?

pry foreman ruby-on-rails-7
3个回答
1
投票

一种流行的方法是使用

pry-remote
,它在某些方面很有用,我没想到:https://github.com/Mon-Ouie/pry-remote.

pry-remote
打开一个远程终端,所以你放下调试器行(
binding.remote_pry
pry-remote
的情况下),你将打开另一个终端并通过在你的 shell 中调用
pry-remote
进入调试会话。

我知道这有点复杂,我已经习惯了,并且能够通过 Foreman 摆脱其他进程记录的噪音。


0
投票

使用 bin/dev,Procfile.dev 文件是用 foreman 运行的。撬动问题是由 CSS 和 JS 观察者引起的,它们只是监听你的 CSS 和 JS 文件中的变化。

你可以做的是从你的 Procfile 中删除

web: unset PORT && bin/rails server
命令。所以它只会有 CSS 和 JS 观察者,看起来像这样:

js: yarn build --watch
css: yarn build:css --watch

现在你必须打开两个终端,一个用

bin/rails s
,另一个用
foreman start -f Procfile.dev
。这样你的窥探就可以在服务器端正常工作,观察者也可以正常观看。

希望这对某人有帮助。


-1
投票

我使用 rdbg + vscode 远程调试,它工作正常。

像这样更新 Procfile.dev 以使用 rails 服务器运行 rdbg 并设置套接字文件

web: rdbg --command --nonstop --open=vscode --sock_path=tmp/sockets/rdbg.socket -- bundle exec bin/rails server

安装 VSCode Ruby rdbg Debugger,像这样配置 launch.json

{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "Attach to rdbg Process",
      "type": "rdbg",
      "request": "attach",
      "debugPort": "${workspaceRoot}/tmp/sockets/rdbg.socket",
    },
  ]
}

现在,VSCode 将在您运行 bin/dev 时启用调试器启动,或者您可以随时通过 F5 在 vscode 中运行调试器

© www.soinside.com 2019 - 2024. All rights reserved.