在VSCode中运行Elixir代码 - 分布式语言运行环境配置

酷静小哥_2807

酷静小哥_2807

2026-06-21

616人浏览

原创

VSCode本身不运行Elixir代码,也不提供分布式环境,仅通过erlang-ls调试器连接已配置的命名Erlang节点(需-name、-setcookie及网络就绪),并可视化其OTP进程树与消息队列。

在vscode中运行elixir代码 - 分布式语言运行环境配置

VSCode 本身不运行 Elixir 代码,更不“提供”分布式运行环境——它只调用你本地已安装的 Erlang/OTP 节点,而分布式能力完全由 erl 启动参数(-name、-setcookie)和系统网络配置决定。所谓“在 VSCode 中运行分布式 Elixir”,本质是让调试器能连接并观察一个带名、可通信的 Erlang 节点。

确认 erl 支持命名节点且网络就绪

Elixir 分布式依赖底层 Erlang 节点通信,VSCode 不参与启动,但若 erl 不支持或系统阻断,Node.connect/1 会静默失败、Node.list() 返回空列表。

  • 终端执行 erl -name test@127.0.0.1 -setcookie abc,成功进入 shell 即表示 OTP 支持命名节点
  • 检查防火墙是否放行 EPMD 端口(默认 4369)和 Erlang 分布式端口段(默认 9000–9100)
  • 确保所有参与节点使用相同 -setcookie 值,且主机名可解析(ping test@127.0.0.1 应通)
  • Mac 用户用 asdf 时,asdf current erlang 输出的 OTP 版本需 ≥ 25.0;自编译 OTP 需启用 +sname/+name 支持

用 erlang-ls 替代 ElixirLS 启动调试会话

type: "mix_task" 配置永远以单节点、:nonode@nohost 方式运行,无法用于验证分布式逻辑。必须切换为 erlang 类型调试器,并显式传入节点参数。

VSCode
VSCode

避免常见的 VSCode 错误——设置冲突、调试器配置和扩展冲突。

下载
  • 卸载或禁用非必要扩展,只保留 erlang-ls.erlang-ls(作者 erlang-ls)和 elixir-lsp.elixir-ls(二者功能互补,不可互换)
  • 项目根目录下创建 .vscode/launch.json,配置中必须含:"type": "erlang"、"node": "test@127.0.0.1"、"setcookie": "abc"
  • "startFun" 推荐设为 "application:start","startArgs" 设为 "[myapp]"(替换为你的应用名)
  • 启动后,调试侧边栏会出现 Processes、Ports、Applications 标签页,点击进程可查看消息队列与状态

避免 mix_task 模式干扰分布式上下文

即使你写了 Node.start(:myapp@127.0.0.1) 或 :net_kernel.start/1,在 mix_task 下仍会因启动隔离而失效——这不是代码问题,而是 Mix 的默认行为。

  • 不要在 launch.json 里用 type: "mix_task" 调试跨节点调用、RPC 或 :global.register_name/2 等操作
  • 若必须从 Mix 入口启动(如 mix phx.server),可在 config/runtime.exs 中强制注入: System.put_env("ELIXIR_ERL_OPTIONS", "-name myapp@127.0.0.1 -setcookie abc")
  • Umbrella 或 Phoenix 项目需确保顶层 mix.exs 已加载,且 mix deps.get 成功——否则 erlang-ls 无法索引跨应用模块,Node.spawn/3 可能报 no such process

真正容易被忽略的是:VSCode 的 erlang-ls 调试器不自动帮你启动 EPMD 或管理 cookie 文件,所有节点通信前提都得靠你在终端手动验证过一遍。没跑通 erl -name a@127.0.0.1 -setcookie x 和 erl -name b@127.0.0.1 -setcookie x 并成功 net_adm:ping('a@127.0.0.1'),VSCode 里再怎么配 launch.json 都只是黑盒。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

vscode 环境配置

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
什么是分布式
什么是分布式

分布式是一种计算和数据处理的方式,将计算任务或数据分散到多个计算机或节点中进行处理。本专题为大家提供分布式相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.11

2113

5

分布式和微服务的区别
分布式和微服务的区别

分布式和微服务的区别在定义和概念、设计思想、粒度和复杂性、服务边界和自治性、技术栈和部署方式等。本专题为大家提供分布式和微服务相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.07

3374

5

vscode是什么_vscode怎么安装配置
vscode是什么_vscode怎么安装配置

VS Code(Visual Studio Code)是一款免费、开源的跨平台代码编辑器,由微软开发和维护。它被广泛用于软件开发和编程,支持多种编程语言和框架。VS Code 同时提供了丰富的功能和扩展性,使开发者可以高效地编写、编辑和调试代码。

2023.06.30

1495

18

vscode怎么运行代码
vscode怎么运行代码

vscode是一个运行于MacOS X、Windows和Linux之上的,针对于编写现代Web和云应用的跨平台源代码编辑器;vscode免费而且功能强大,对JavaScript和NodeJS的支持非常好,自带很多功能,例如代码格式化,代码智能提示补全、Emmet插件等。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

2023.07.21

3192

3

vscode使用的框架介绍
vscode使用的框架介绍

VSCode是一款跨平台代码编辑器,它基于Electron框架和Monaco Editor构建。想了解更多vscode的相关内容,可以阅读本专题下面的文章。

2024.03.14

2069

12

vscode一般用来写什么语言
vscode一般用来写什么语言

VSCode是一款功能强大的代码编辑器,支持多种编程语言和文件格式。它内置对 JavaScript、Python、Java、C++、TypeScript、HTML/CSS、Go 等语言的支持。想了解更多vscode的相关内容,可以阅读本专题下面的文章。

2024.03.14

1747

8

vscode可以写什么语言
vscode可以写什么语言

vscode是一款强大的代码编辑器,支持多种编程语言的开发。通过安装扩展,可以为 JavaScript/TypeScript、Python、Java、C#、PHP、Go、Ruby、Rust、HTML/CSS 等语言提供智能代码补全、调试和格式化等功能。想了解更多vscode的相关内容,可以阅读本专题下面的文章。

2024.03.15

2627

12

vscode中文设置方法
vscode中文设置方法

方法一:在设置页面中,搜索“locale”,并选择“zh-cn”。方法二:按“Ctrl Shift P”快捷键,输入“Configure Display Language”,将语言修改为“zh-cn”。如果上述方法无效,可考虑安装中文插件。想了解更多vscode的相关内容,可以阅读本专题下面的文章。

2024.03.15

1858

14

vscode用途介绍
vscode用途介绍

Visual Studio Code(VSCode)是一款由 Microsoft 开发的多功能文本编辑器,适用于各种编程语言。作为一款开源软件,VSCode 拥有代码高亮、自动补全、调试、Git 集成等强大功能,成为程序员不可或缺的工具。想了解更多vscode的相关内容,可以阅读本专题下面的文章。

2024.03.15

1282

10

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程