未清理浏览器数据时Remix的contracts文件夹下.sol文件如何恢复?
Remix contracts文件夹.sol文件丢失恢复操作指南
前置准备
- 保持Remix页面处于打开状态,按F12打开开发者工具
- 进入
Application > Local Storage > Remix对应域名路径,找到所有前缀为workspace的键 - 逐个查看键对应的JSON值,找到包含你丢失的.sol文件内容的条目,完整复制该值并单独备份,防止操作失误丢失数据
恢复操作步骤
- 切换到开发者工具的
Console标签页,先运行以下代码获取Remix文件系统实例:
const fs = remix.fileManager.currentFileProvider.fs
- 将你之前复制备份的Local Storage值,替换下方代码中的
备份的Local Storage字符串,如果备份的字符串中包含单引号,需要提前将单引号转义为\',再运行代码:
const savedWorkspace = JSON.parse('备份的Local Storage字符串') Object.entries(savedWorkspace).forEach(([filePath, fileContent]) => { // 自动生成缺失的上级目录 const parentDir = filePath.split('/').slice(0, -1).join('/') if (parentDir) fs.mkdirpSync(parentDir) // 写入文件内容 fs.writeFileSync(filePath, typeof fileContent === 'string' ? fileContent : fileContent.content) })
- 代码运行无报错后,刷新Remix页面,即可看到contracts文件夹下的所有.sol文件正常显示
适用场景
- 未清理浏览器本地数据的前提下,Brave、Chrome等Chromium内核浏览器中Remix文件异常消失的情况
- Local Storage中仍保留workspace对应键值对的场景
内容的提问来源于stack exchange,提问作者Brian Lee Victory
相关产品推荐
相关产品推荐

