当truffle-config.js含双网络时,truffle migrate默认部署至哪个网络?
Truffle Migrate 默认部署网络说明
当你在终端执行不带--network参数的truffle migrate命令时,只会部署到development网络,完全不会同时部署到两个网络,原因如下:
- Truffle的默认行为规则是:如果执行迁移时没有显式指定网络,它会优先使用配置文件中名为
development的网络配置。如果配置里没有development,才会 fallback 到内置的默认本地节点设置(host 127.0.0.1,port 8545)。 - 看你提供的
truffle-config.js代码,networks对象里明确定义了development网络,指向本地的127.0.0.1:7545(这通常是Ganache的默认端口),所以Truffle会直接选用这个网络来部署合约。 - 若要部署到
ropsten测试网,必须显式加上参数执行:truffle migrate --network ropsten,否则Truffle不会触发这个网络的配置。
附上你提供的配置代码供参考:
require('dotenv').config(); const Web3 = require("web3"); const web3 = new Web3(); const WalletProvider = require("truffle-wallet-provider"); const Wallet = require('ethereumjs-wallet'); const ropstenPrivateKey = new Buffer(process.env.ROPSTEN_PRIVATE_KEY, "hex") const ropstenWallet = Wallet.fromPrivateKey(ropstenPrivateKey); const ropstenProvider = new WalletProvider(ropstenWallet, `https://ropsten.infura.io/${process.env.INFURA_ROPSTEN_ID}`); module.exports = { networks: { development: { host: "127.0.0.1", port: 7545, network_id: "*" // Match any network id }, ropsten: { provider: ropstenProvider, gas: 4600000, gasPrice: web3.utils.toWei('55', 'gwei'), network_id: "3" } } };
内容的提问来源于stack exchange,提问作者Zach G
相关产品推荐
相关产品推荐

