VS Code中cache/solidity-files-cache.json反复出现如何解决?
解决VS Code中自动生成
cache/solidity-files-cache.json的问题 原因分析
这个solidity-files-cache.json是ethers-rs生态工具生成的缓存文件,用于记录Solidity项目的路径结构、编译依赖等信息,目的是加速后续的文件扫描和编译流程。自动生成的常见触发源:
- 全局安装的Rust工具:比如
foundry(通过foundryup安装)或ethers-solc,这类工具会自动检测系统中的Solidity项目结构并生成缓存。 - VS Code插件:比如Nomic Foundation官方的Solidity插件,插件在后台扫描项目时会调用ethers-rs的相关模块生成缓存。
解决办法
1. 全局禁用插件触发的缓存
打开VS Code,按Cmd+,(Mac)或Ctrl+,(Windows)打开设置:
- 搜索Solidity: Cache Enabled,找到对应的Solidity插件(通常是Nomic Foundation的版本),将该选项设置为
false。 - 如果不确定是哪个插件,可暂时禁用所有Solidity相关插件,重启VS Code后验证是否还生成缓存,再逐个排查恢复。
2. 清理全局Rust工具的自动生成
- 检查全局Rust工具列表:运行
cargo install --list,查看是否有ethers-solc或foundry相关工具。- 若存在
ethers-solc,执行cargo uninstall ethers-solc卸载。 - 若使用
foundry,可在全局配置文件~/.foundry/foundry.toml中添加以下配置禁用缓存:
或者执行[cache] enabled = falsefoundryup --uninstall彻底卸载全局foundry(如果不再需要)。 - 若存在
3. 单个项目禁用缓存
如果只想针对特定项目阻止生成:
- 在项目根目录创建
.solc-cache-ignore空文件,ethers-rs相关工具会识别该文件并跳过缓存生成。 - 若项目使用foundry,直接在
foundry.toml中添加[cache] enabled = false配置。
4. 兜底:系统级阻止目录生成
如果以上方法无效,可通过系统命令阻止cache目录创建:
# 先删除已存在的cache目录 rm -rf /Users/matthewpryor/projects/[你的项目名]/cache # 创建同名空文件占位(工具无法创建同名目录) touch /Users/matthewpryor/projects/[你的项目名]/cache # 设置文件为只读,防止被修改或删除 chmod 444 /Users/matthewpryor/projects/[你的项目名]/cache
内容的提问来源于stack exchange,提问作者Matthew Pryor
相关产品推荐
相关产品推荐

