5

我正在尝试从一个非常简单的 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

我按照此处的说明进行了广泛的研究,但不幸的是无法使其正常工作。

4

1 回答 1

1
Source "@openzeppelin/contracts/token/ERC20/ERC20.sol" not found: File import callback not supported

我有同样的问题。我在unnamed工作区中添加了多个文件夹。删除所有其他文件夹并仅保留一个项目文件夹后,我解决了问题。

于 2021-08-11T13:25:51.453 回答