Solana代币开发:Node.js运行ts-node程序遇语法错误求助
问题解决:SyntaxError: Unexpected token =
错误原因
报错中的||=是ES2021新增的逻辑赋值运算符,你的Node.js版本低于16.0.0,不支持该语法,导致编译失败。
解决步骤
检查当前Node.js版本
执行以下命令查看版本:node -v若输出版本低于
v16.0.0,说明版本不兼容。升级Node.js到支持ES2021的版本
推荐使用nvm(Node版本管理器)安装长期支持版(LTS),步骤如下:- 安装nvm:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash - 重启终端后,安装最新LTS版本:
nvm install --lts - 切换到刚安装的版本:
nvm use --lts
若无法使用nvm,也可通过Ubuntu的PPA安装高版本Node.js:
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash - sudo apt-get install -y nodejs- 安装nvm:
验证并重新运行程序
再次执行node -v确认版本已升级到v16.x及以上,然后运行:ts-node main.ts此时程序应该能正常打印钱包公钥。
额外代码提示
你的代码中accounts对象的属性值是web3.PublicKey类型而非具体的公钥实例,后续完成教程时需要替换为对应的实际地址(比如代币mint地址、钱包地址等),否则调用mpl.createCreateMetadataAccountInstruction时会报错。
内容的提问来源于stack exchange,提问作者Risen_Star
相关产品推荐
相关产品推荐

