You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WSL环境运行Elixir执行mix deps.get找不到dev\r.exs文件求助

问题原因与解决方案

错误原因

错误中的\r是Windows系统的回车控制符,该问题是跨系统换行符不兼容导致的:Windows系统默认换行格式为CRLF(\r\n),而WSL的Linux环境默认换行格式为LF(\n)。你的配置文件使用了Windows风格换行,Elixir解析配置时把行尾的\r识别成了文件名的一部分,才会尝试读取不存在的dev\r.exs文件。

解决方案

1. 转换现有文件换行符(临时修复)

  • 先在WSL终端安装换行符转换工具:
    sudo apt install dos2unix
    
  • 进入项目根目录,转换所有配置文件的换行符为Linux兼容格式:
    dos2unix config/*.exs
    

2. 配置git规则避免复发

如果你的项目通过git管理,可以配置换行符规则从根源避免同类问题:

  • 如果你主要在WSL环境开发,全局配置git自动处理换行符:
    git config --global core.autocrlf input
    
    该配置会在提交代码时自动把CRLF转为LF,拉取代码时不做转换,适配Linux/WSL环境。
  • 如果需要Windows和WSL混用开发,可以在项目根目录新增.gitattributes文件,添加以下规则指定Elixir相关文件统一使用LF换行:
    *.ex text eol=lf
    *.exs text eol=lf
    

3. 验证修复结果

执行以下命令查看配置文件换行符,正常LF格式的行尾会显示为$,如果显示^M$说明还存在未转换的\r:

cat -A config/config.exs

修复完成后再重新执行mix deps.get即可正常运行。

内容的提问来源于stack exchange,提问作者OliOli

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 01:09:04