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

如何修复Deno中"must be declared in an enclosing class"报错?

Deno单服务器私有字段语法错误排查方案

你遇到的错误为:

$ ./api                                                        
error: Uncaught SyntaxError: Private field '#h1' must be declared in an enclosing class
    at file://$deno$/bundle.js:3004:16

该报错核心为运行时环境不支持ES私有类字段语法,结合三台同配置服务器仅一台故障的场景,按优先级执行以下排查步骤:

  • 验证实际运行的Deno版本
    在故障服务器执行deno --version,确认输出版本确实为1.15.3。部分服务器会存在多版本Deno共存的情况,环境变量PATH优先级可能导致实际调用的是未声明的低版本Deno,低版本对ES私有字段的支持存在缺陷会触发该报错。
  • 校验应用二进制完整性
    在正常运行的服务器上执行sha256sum ./api生成文件哈希值,再在故障服务器执行同样命令,对比两个哈希值是否完全一致。如果不一致说明文件在传输到故障服务器的过程中出现损坏,重新传输完整的二进制文件即可解决。
  • 清理Deno损坏缓存
    如果版本和文件哈希都无异常,执行deno info查看Deno的缓存目录路径,删除缓存目录下所有bundle相关的临时文件,再重新运行应用,排除缓存损坏导致的语法解析错误。
  • 确认服务器架构一致性
    执行uname -m对比三台服务器的CPU架构,如果故障服务器架构和另外两台不同(比如另外两台为x86_64,故障服务器为arm架构),跨架构编译的Deno应用会出现运行时解析异常,需要针对对应架构重新编译应用。
  • 本地重编验证
    如果上述排查都无异常,将应用源码同步到故障服务器,在故障服务器本地重新执行编译命令后运行,排除跨设备编译带来的兼容性问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 04:39:03