在项目开发中,有时会出现本地环境不支持代码执行的场景,比如需要访问外网api、需要安装复杂的环境懒的安装等等。本人就是在调试langchain的时候,发现通过无论是直连,还是通过代理,死活连不上openai的api,然后各种查资料,发现了还有这样一种方法:通过intellij idea远程调试。
我这里的开发环境是nodejs,其它语言应该是类似的,可自行探索。
这里假设已经有了一台服务器,并且此服务器上已经配置好了所需的执行环境。
先把本地代码copy一份,上传至服务器目录下。(这里随便怎么copy都行,sftp上传、git拉取等等)
这里假设本地代码在 D:\workspace\aitail-llm-svc ,对应上传至服务器的 /root/aitail-llm-svc。下面的设置也是根据这个来设的。
该做的代码执行前工作在服务器上做好。比如安装依赖、build等。
在intellij中,打开setting -> Build,Excution,Deployment -> Deployment。(下面还有一级Options,先不要选,后面会说)
点击+号,选择同步方式。我选的是比较通用的SFTP。大部分的云服务器都会支持这个。

随便起个名字方便记。

点击SSH configuration右边的三个点,添加一个ssh配置


添加完回来后,选择刚才添加的配置。然后在Root path选择你要同步的文件将放在哪里。我这里直接选了root用户的home路径,也就是/root

还是在这里,点击切换到Mapping,这里设置本地路径和项目在服务器上的保存路径。注意,这里的服务器路径是相对路径。相对于上面的Root path。

选择Options(即 setting -> Build,Excution,Deployment -> Deployment -> Options)。
Upload changed files automatically to the default server这里选择On explicit save action。也可以选Always,根据个人习惯即可。上面的Elclude items by name,有一些默认不同步的后缀,可以按实际修改。
注意,这里是增量同步的,所以最开始的时候才要先把代码拷一份上去

同步功能配置好后,就可以配置远程执行了。以nodejs为例。
添加远程可执行文件。(Settings -> Languages & Frameworks -> Nodejs)

点+号,选择Add Remote

选择SSH,选择在配置同步时已经配好的SSH configuration。修改Nodejs的执行文件路径

确定后回后上级目录,即可选择。(也可以不选,这样默认还是本地执行,在需要时再切换)

试一下效果。点击执行。控制台这里显示的是远程服务器上的node以及远程服务器上的js文件,就说明配置好了。

如果是配置了默认本地的话,在这里可以修改切换用哪个执行。

