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

Node.js v18中使用.load命令加载文件为何陷入首行无限循环?

问题原因与解决方案

这不是 Node.js 的 Bug,而是文件换行符格式不兼容导致的问题。

问题根源

Linux 系统默认使用 Unix 风格的 LF(换行)作为行结束符。如果你的 palindrome.js 文件采用了 Windows 风格的 CRLF(回车+换行)换行符,Node REPL 的 .load 命令无法正确识别行结束标记,会反复读取并打印文件第一行,进而陷入无限循环。

解决步骤

  1. 检查文件换行符格式:
    执行以下命令查看文件的换行符类型:

    file palindrome.js
    

    若输出包含 CRLF line terminators,则确认是 Windows 换行符问题。

  2. 转换为 Unix 风格换行符:

    • 安装并使用 dos2unix 工具:
      sudo apt install dos2unix
      dos2unix palindrome.js
      
    • 或用 sed 命令手动替换(无需额外安装):
      sed -i 's/\r$//' palindrome.js
      
  3. 验证修复效果:
    重新启动 Node REPL,执行 .load palindrome.js,此时文件应该能正常加载,不会出现无限循环。

额外确认

你可以直接运行文件验证代码逻辑本身无问题:

node palindrome.js

若没有报错,说明代码是正确的,问题完全源于换行符格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 02:50:35