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

部署代码到Ropsten报SyntaxError: Unexpected number in JSON错误如何解决

问题排查与解决

核心错误原因

  • 你错误地使用JSON.parse()解析.gitignore文件:.gitignore是Git用于配置忽略提交文件的纯文本规则文件,本身不符合JSON格式规范,所以解析时会直接抛出JSON格式异常。
  • 存在潜在配置错误:Infura节点地址使用单引号包裹,无法解析模板变量${gitignore.projectID},即使JSON解析正常后续也会出现节点连接失败问题。

修复步骤

  1. 项目根目录新建专门存储私密配置的JSON文件,命名为secret.json,内容格式如下:
{
  "seed": "你的12/24位钱包助记词",
  "projectID": "你的Infura项目ID"
}
  1. 将secret.json添加到.gitignore文件中,避免私密信息被提交到代码仓库,只需在.gitignore新增一行:
secret.json
  1. 修改Truffle配置文件代码,修正文件读取路径和模板字符串写法:
const fs = require('fs');
const HDWalletProvider = require("@truffle/hdwallet-provider");

// 读取专门的JSON配置文件,而非.gitignore
const secret = JSON.parse(
    fs.readFileSync('./secret.json').toString().trim()
);

module.exports = {
    networks: {
        ropsten: {
            provider: () => 
                new HDWalletProvider(
                    secret.seed,
                    // 用反引号包裹模板字符串,才能正确解析变量
                    `https://ropsten.infura.io/v3/${secret.projectID}`
                ),    
            network_id: 3           
        }
    }
};
  1. 若需要验证解析是否正常,可在JSON解析前添加日志输出,确认读取的内容是合法JSON格式:
const fileContent = fs.readFileSync('./secret.json').toString().trim();
console.log('读取到的配置内容:', fileContent);
const secret = JSON.parse(fileContent);

额外提示

Ropsten测试网已官方弃用,若修复配置后仍出现网络相关错误,可替换为当前可用的Sepolia或Goerli测试网,修改对应节点地址和network_id即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.15 11:27:09