从 Github repo 导入到 Solidity Contract 的规则(语法)是什么
What are the rules (syntax) for importing from Github repo to Solidity Contract
我在 Solidity 合约中有以下导入语句(有效)。
import "@openzeppelin/contracts/token/ERC20/IERC20.sol"
我正在导入的界面位于以下存储库中:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/IERC20.sol
我的问题是,从 github 存储库导入到 Solidity 时,我应该遵循什么语法或规则?导入语句中的@符号是什么意思?
您的代码片段显示 direct import 根据编译器配置在本地目录中搜索文件。
默认来源之一是 node_modules
目录,其中安装了 NPM 个包。
@
符号只是 NPM 的前缀,允许将更多包分组到同一命名空间(在本例中为 @openzeppelin/<package_name>
)。
要从 GitHub 导入合约,您只需传递完整的 URL:
import "https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/IERC20.sol";
同样由于默认配置,编译器将远程文件从 GitHub 下载到本地临时目录,并在编译前导入其内容。
我在 Solidity 合约中有以下导入语句(有效)。
import "@openzeppelin/contracts/token/ERC20/IERC20.sol"
我正在导入的界面位于以下存储库中:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/IERC20.sol
我的问题是,从 github 存储库导入到 Solidity 时,我应该遵循什么语法或规则?导入语句中的@符号是什么意思?
您的代码片段显示 direct import 根据编译器配置在本地目录中搜索文件。
默认来源之一是 node_modules
目录,其中安装了 NPM 个包。
@
符号只是 NPM @openzeppelin/<package_name>
)。
要从 GitHub 导入合约,您只需传递完整的 URL:
import "https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/IERC20.sol";
同样由于默认配置,编译器将远程文件从 GitHub 下载到本地临时目录,并在编译前导入其内容。