文章目录

  • 问题描述
  • 解决办法
    • 对插件进行设置
    • 降低solidity插件版本

本文针对的 调试 Solidity 代码的插件为

问题描述

最近在使用 VS Code 编写 solidity 合约的时候,引用 OpenZeppelin 库之后出现了如下错误:

报错为:Expected string literal (path), "*" or alias list.

或者还有可能会出现这样的错误:

报错为:Source "@openzeppelin/contracts/token/ERC721/ERC721.sol" not found: File import callback not supported

解决办法

目前有两种解决办法:

对插件进行设置

在 VSCode 中按快捷键 Ctrl + Shift + P ,在弹出的对话框中输入 settings.json,选择打开用户设置
在最后一行插入

"solidity.remappingsUnix": ["@openzeppelin/=node_modules/@openzeppelin/"],"solidity.remappings": ["@openzeppelin/=node_modules/@openzeppelin/"],


保存、重启即可

降低solidity插件版本

如果经过上述设置之后仍不能解决报错的问题,就需要手动降低 Solidity 插件的版本了,目前笔者尝试的不报错的版本为 0.0.135 ,下载链接放在这里:solidity VSCode插件0.0.135

下载该文件之后,在 VSCode 中按照以下顺序选择从 VSIX 安装插件并选择刚才下载的的插件

安装成功之后点击按钮重新加载 VSCode 即可解决报错问题