运行ts-node部署Solana合约报Cannot find module './ras'如何修复
Solana 智能合约部署ts-node执行报错修复方案
报错核心原因
报错Error: Cannot find module './ras'是Windows终端解析带空格路径时的典型错误:你的所有路径(用户目录ras zebi、工作目录solana boobs、资产目录my assets)都包含空格,未加引号包裹时,终端会把空格识别为参数分隔符,直接将截断后的C:\Users\ras作为待加载的脚本路径,自然触发模块找不到的错误。
可按顺序尝试以下修复方案
- 给命令中所有带空格的路径统一包裹英文双引号,强制终端把完整字符串识别为路径,修正后的可执行命令参考:
ts-node "C:\Users\ras zebi\Desktop\solana boobs\metaplex-master\js\packages\cli\src\candy-machine-v-cli.ts" upload -e devnet -k "C:\Users\ras zebi\Desktop\solana boobs\keypair\my-keypair.json" -cp "C:\Users\ras zebi\Desktop\solana boobs\metaplex-master\js\packages\cli\example-candy-machine-upload-config.json" "C:\Users\ras zebi\Desktop\solana boobs\metaplex-master\my assets"
- 从根源规避路径解析问题:把所有相关文件(Metaplex源码、密钥对文件、NFT资产文件夹)全部移动到无空格、无中文、无特殊符号的短路径下,比如直接放到
C:\solana目录下,把原来带空格的solana boobs改成solana、my assets改成my-assets,调整后不用加引号也能正常执行,示例命令:
ts-node C:\solana\metaplex-master\js\packages\cli\src\candy-machine-v-cli.ts upload -e devnet -k C:\solana\keypair\my-keypair.json -cp C:\solana\metaplex-master\js\packages\cli\example-candy-machine-upload-config.json C:\solana\metaplex-master\my-assets
- 执行命令前先切换终端工作目录到Metaplex CLI的包根目录,避免ts-node找不到项目对应的
tsconfig.json配置和本地依赖,切目录命令:
cd "C:\Users\ras zebi\Desktop\solana boobs\metaplex-master\js\packages\cli"
切到对应目录后可以用相对路径写命令,减少长路径输错的概率。
- 如果以上操作后还是报模块缺失错误,在CLI包根目录下执行依赖安装命令,确认所有npm依赖安装完整:
npm install
补充:直接跑ts源码部署Candy Machine的方式依赖Node、ts-node、源码依赖版本等多重环境,更容易出兼容问题,更推荐用Metaplex官方推出的Sugar CLI工具完成部署,环境配置成本低很多。
内容的提问来源于stack exchange,提问作者Momo bh
相关产品推荐
相关产品推荐

