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

Rails 6中遇ExecJS::RuntimeError,如何获取错误详情?

调试Rails 6中CoffeeScript的ExecJS语法错误

针对你遇到的ExecJS::RuntimeError(提示SyntaxError: [stdin]:42:5: unexpected <),可以通过以下方法定位问题:

  • 开启ExecJS调试模式查看临时文件
    启动Rails服务前设置环境变量,让ExecJS输出编译时的临时文件路径:

    export EXECJS_RUNTIME_DEBUG=1
    rails server
    

    控制台会打印出编译过程中生成的临时文件位置,找到对应文件的第42行,查看是否有意外的<符号(可能是误写的HTML标签、ERB输出异常或语法错误导致的编译结果异常)。

  • 单独编译CoffeeScript文件
    全局安装CoffeeScript编译器,然后逐个编译项目中的Coffee文件,直接定位错误文件和行号:

    npm install -g coffeescript
    # 编译单个文件
    coffee -c app/assets/javascripts/your_file.coffee
    

    编译器会直接输出具体的语法错误信息,比Rails的统一报错更精准。

  • 排查ERB混入问题
    如果你的Coffee文件是.js.coffee.erb格式,可能是ERB代码输出了<或ERB语法错误。先将文件后缀改为.js.coffee,重新启动服务测试。如果报错消失,再逐步检查ERB部分的代码逻辑。

  • 检查文件后缀和语法混淆
    确认没有将Sass语法写入CoffeeScript文件,也没有写错文件后缀(比如把.scss误命名为.coffee),这类错误会导致编译解析时出现意外符号。

  • 查看Rails详细日志
    用带追踪参数的命令启动服务,获取更完整的错误堆栈:

    rails server --trace
    

    堆栈信息可能会显示触发编译错误的具体源文件,缩小排查范围。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 01:12:40