VScode Solidity 扩展 - 找不到 openzepplin 导入
Posted
技术标签:
【中文标题】VScode Solidity 扩展 - 找不到 openzepplin 导入【英文标题】:VScode Solidity extension - not finding openzepplin imports 【发布时间】:2021-07-22 15:42:42 【问题描述】:我正在尝试开始使用一个非常简单的 Solidity 合约,但 VSCode 让我很难过。 我正在使用 Juan Blancos solidity 插件,但 VSCode 找不到 openzepplin 导入
import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
错误是:
找不到源“@openzeppelin/contracts/token/ERC20/ERC20.sol”:不支持文件导入回调
即使 vscode 显示红色波浪线,我也可以通过 hardhat compile 成功编译。
如果我将路径更改为
import "../node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol";
VScode 停止抱怨,但我无法通过硬硬编译,错误是:
找不到源“node_modules/@openzeppelin/contracts/security/Pausable.sol”:文件超出允许的目录。
我的用户和工作区的 Solidity 扩展的 VSCode 设置是:
"solidity.packageDefaultDependenciesContractsDirectory": "contracts",
"solidity.packageDefaultDependenciesDirectory": "node_modules"
这与我的项目结构相对应
root
|_ contracts
|_ MyToken.sol
|_ node_modules
|_ @openzepplin
我按照说明 here 进行了广泛的研究,但遗憾的是无法使其正常工作。
【问题讨论】:
我正在尝试使用 GitHub 将其导入 VScode。import "https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.1.0/contracts/access/Ownable.sol";
但它给了我一个错误This contract not found and File import callback not supported
。为Solidity
使用Juan Blanco
扩展。
【参考方案1】:
Source "@openzeppelin/contracts/token/ERC20/ERC20.sol" not found: File import callback not supported
我有同样的问题。我在unnamed
工作区中添加了多个文件夹。删除所有其他文件夹并仅保留一个项目文件夹后,为我解决了问题。
【讨论】:
以上是关于VScode Solidity 扩展 - 找不到 openzepplin 导入的主要内容,如果未能解决你的问题,请参考以下文章