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

Node.js中加载指定版本Solidity编译器遇报错求助

解决Node.js中Solidity指定版本编译器加载问题

问题2:solc.useVersion()不存在的处理

solc-js从v0.5.x版本起已移除useVersion方法,该API属于旧版规范。若你是参考旧文档编写代码,需适配当前solc的新逻辑。

问题1:solc.loadRemoteVersion报错Error retrieving binaries: not found的解决

该错误常见原因及对应方案如下:

  • 版本号格式错误:必须传入完整的语义化版本号(如'0.8.20'),不能使用'0.8'这类不完整版本,也不要尝试加载非官方稳定的夜间版(除非确认该版本存在于GitHub仓库)。
  • solc包版本兼容问题:若安装的是最新版solc,loadRemoteVersion的实现可能有变更,可尝试降级solc到v0.8.x早期版本测试,或确保安装的solc包版本与目标加载版本兼容。
  • 网络/本地文件替代:若网络无法访问GitHub资源,可手动下载对应版本的solcjs二进制文件,放到node_modules/solc/bin/目录下,命名为solc-v[版本号].js(如solc-v0.8.20.js),之后直接通过require('solc/bin/solc-v0.8.20.js')加载该版本。

推荐的稳定方案

远程加载易受网络或版本兼容影响,最可靠的方式是直接安装指定版本的solc:

npm install solc@0.8.20

代码中直接引用即可:

const solc = require('solc')
// 此时solc即为你安装的指定版本

若需在项目中切换多版本,可安装多个版本后通过路径引用:

npm install solc@0.7.6 solc@0.8.20

引用示例:

const solcV07 = require('solc@0.7.6')
const solcV08 = require('solc@0.8.20')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 01:20:32