我在本地网络上有一个 ubuntu 家庭服务器,我正在使用它来开发这个 ionic angular 应用程序。我从我的主 windows 11 计算机 ssh 进入这个 ubuntu 服务器,并使用 NeoVim 对其进行编辑。
我在本地网络上有一个 ubuntu 家庭服务器,我正在使用它来开发这个 ionic angular 应用程序。我从我的主 windows 11 计算机 ssh 进入这个 ubuntu 服务器并使用 NeoVim 对其进行编辑。
直到我使用以下命令为应用程序提供服务:
ionic serve --host=0.0.0.0 --ssl
这样,我就可以在 ubuntu 服务器上查看前端。我的问题是,我现在正尝试使用 NeoVim 的 DAP 插件调试代码,如果它在我的 Windows 11 计算机上运行,而不是在服务器本身上运行,我不确定是否可以将 DAP 连接到 Firefox 调试器服务器。
任何帮助都将不胜感激:)
以下是我迄今为止尝试过的:
磷酸二铵。
return {
{
'mfussenegger/nvim-dap',
dependencies = {
'leoluz/nvim-dap-go',
'rcarriga/nvim-dap-ui',
'theHamsta/nvim-dap-virtual-text',
'nvim-neotest/nvim-nio',
'williamboman/mason.nvim',
},
config = function()
local dap = require 'dap'
local ui = require 'dapui'
require('dapui').setup()
require('dap-go').setup()
require('nvim-dap-virtual-text').setup {}
-- Configuration for .NET Core (ASP.NET Core) using net8.0
dap.adapters.coreclr = {
type = 'executable',
command = '/usr/local/bin/netcoredbg/netcoredbg', -- Update with the correct path to netcoredbg
args = { '--interpreter=vscode' },
}
dap.configurations.cs = {
{
type = 'coreclr',
name = 'Launch ASP.NET Core',
request = 'launch',
preLaunchTask = function()
-- Run the project before launching the debugger
local build_cmd = 'dotnet publish --configuration Debug --runtime linux-x64 --self-contained'
print('Running: ' .. build_cmd)
vim.fn.system(build_cmd)
end,
program = function()
local cwd = vim.fn.getcwd()
local dll = vim.fn.glob(cwd .. '/bin/Debug/net8.0/linux-x64/MelodyFitnessApi.dll', 0, 1)
if #dll == 0 then
print 'No DLL found in bin/Debug/net8.0/linux-x64'
return ''
end
print('Using program: ' .. dll[1])
return dll[1]
end,
cwd = '${workspaceFolder}',
stopAtEntry = false,
console = 'integratedTerminal',
},
{
type = 'coreclr',
name = 'Attach ASP.NET Core',
request = 'attach',
processId = require('dap.utils').pick_process,
cwd = '${workspaceFolder}',
},
}
-- Configuration for Ionic Angular (JavaScript/TypeScript) using Firefox
dap.adapters.firefox = {
type = 'executable',
command = 'node',
args = { os.getenv 'HOME' .. '/.vscode/extensions/vscode-firefox-debug/dist/adapter.bundle.js' },
}
dap.configurations.javascript = {
{
type = 'firefox',
request = 'attach',
name = 'Launch Firefox against remote localhost',
host = '192.168.1.9', -- IP address of main computer, the one running fire fox debug instance.
port = 6000,
url = 'https://192.168.1.11:8100', -- Ubuntu server's local IP address
webRoot = '${workspaceFolder}',
sourceMaps = true,
},
}
dap.configurations.typescript = dap.configurations.javascript
vim.keymap.set('n', '<space>tb', dap.toggle_breakpoint)
vim.keymap.set('n', '<space>gb', dap.run_to_cursor)
vim.keymap.set('n', '<space>?', function()
require('dapui').eval(nil, { enter = true })
end)
vim.keymap.set('n', '<F1>', dap.continue)
vim.keymap.set('n', '<F2>', dap.step_into)
vim.keymap.set('n', '<F3>', dap.step_over)
vim.keymap.set('n', '<F4>', dap.step_out)
vim.keymap.set('n', '<F5>', dap.step_back)
vim.keymap.set('n', '<F12>', dap.restart)
-- Key mapping to toggle the DAP UI
vim.keymap.set('n', '<Leader>dui', function()
ui.toggle()
end)
dap.listeners.before.attach.dapui_config = function()
ui.open()
end
dap.listeners.before.launch.dapui_config = function()
ui.open()
end
dap.listeners.before.event_terminated.dapui_config = function()
ui.close()
end
dap.listeners.before.event_exited.dapui_config = function()
ui.close()
end
end,
},
}
然后在我的 Windows 计算机上通过 powershell 运行此命令来启动 Firefox 调试服务器
& "C:\Program Files\Mozilla Firefox\firefox.exe" --args --start-debugger-server 6000
我还尝试在 Windows 11 计算机上为端口 6000 添加传入 TCP 规则,并允许 Firefox 通过此端口。
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"Name": {
"type": "string"
},
"City": {
"type": "string"
}
},
"required": [
"Name",
"City"
]
}
<policies>
<inbound>
<base />
<validate-content unspecified-content-type-action="prevent" max-size="128" size-exceeded-action="ignore" errors-variable-name="requestBodyValidation">
<content type="application/json" validate-as="json" action="prevent" schema-id="{Your Schema Id}" />
</validate-content>
</inbound>
</policies>