Wenn ich versuche, meine Migration mit Truffle Migration auszuführen, wird die folgende Fehlermeldung angezeigt:
Error: No network specified. Cannot determine current network.
at Object.detect (/usr/local/lib/node_modules/truffle/build/cli.bundled.js:43157:23)
at /usr/local/lib/node_modules/truffle/build/cli.bundled.js:200497:19
at finished (/usr/local/lib/node_modules/truffle/build/cli.bundled.js:43085:9)
at /usr/local/lib/node_modules/truffle/build/cli.bundled.js:198408:14
at /usr/local/lib/node_modules/truffle/build/cli.bundled.js:68162:7
at /usr/local/lib/node_modules/truffle/build/cli.bundled.js:163793:9
at /usr/local/lib/node_modules/truffle/build/cli.bundled.js:160353:16
at replenish (/usr/local/lib/node_modules/truffle/build/cli.bundled.js:160873:25)
at iterateeCallback (/usr/local/lib/node_modules/truffle/build/cli.bundled.js:160863:17)
at /usr/local/lib/node_modules/truffle/build/cli.bundled.js:160838:16
Dies ist auf einem OSX-Computer und ich verwende Truffle Version 4.0.0, Solidity Version 0.4.18. TestRPC v4.1.3 läuft im Hintergrund.
Stellen Sie sicher, dass Sie Ihr Netzwerk in truffle.js konfiguriert haben . Für das oben genannte Setup sollte es in etwa so aussehen:
module.exports = {
networks: {
development: {
host: "localhost",
port: 8545,
network_id: "*" // Match any network id
}
}
};
Ich hatte das gleiche Problem mit Truffle 4.0.1. Nach einigen Nachforschungen und Ratschlägen des Truffle-Teams fand ich heraus, dass Truffle 4.0.x eine neue Option hat. Wenn Sie laufen truffle develop
, brauchen Sie testrpc nicht mehr. Da die Truffle-Entwicklung auf Port 9545 läuft, müssen Sie Ihre truffle.js so ändern
networks: {
development: {
host: "localhost",
port: 9545,
network_id: "*" // Match any network id
}
}
Truffle 4.0.x hat einige andere coole neue Funktionen. Ich empfehle, die Versionshinweise von Truffle 4.0.0 zu lesen. Sie finden sie hier https://github.com/trufflesuite/truffle/releases/tag/v4.0.0 Sie empfehlen auch ein Upgrade auf Truffle 4.0.1.
Ich hoffe das hilft
oder Sie können das Netzwerk angeben:
Ihre truffle.js:
module.exports = {
networks: {
privateNode: {
host: '127.0.0.1',
port: 8501,
network_id: '*'
},
ganache: {
host: "127.0.0.1",
port: 7545,
network_id: "*"
}
}
};
Konsolenbefehlszeile:
truffle migrate --network ganache //this can open only truffle.js and does not run the script
truffle.cmd migrate --network ganache //this would run script for 100%
Bitte überprüfen Sie die Truffle-Konfigurationsdatei. Mine wurde durch folgenden Code gelöst, Ganache-Netzwerk auskommentieren und zum Testen durch Entwicklung ersetzen
module.exports = {
networks: {
/* ganache: {
host: "localhost",
port: 7545,
gas: 5000000,
network_id: "*" // Match any network id
}*/
// Make sure it should connecto to development environment
development: {
host: "localhost",
port: 7545,
gas: 5000000,
network_id: "*" // Match any network id
}
}
};
Ich habe auch einen ähnlichen Fehler erhalten, als ich mich auf eine Website bezog, die network_id nicht verwendete (möglicherweise aufgrund eines Konfigurationsupdates, da ich die neueste Truffle-Version verwendet habe).
Das hat bei mir funktioniert! Bearbeiten Sie Ihre truffle.js- oder truffle-config.js-Datei wie folgt:
module.exports = {
networks: {
development: {
host: "localhost",
port: 8545,
network_id: "*"
}
}
}
Hinweis: Das obige Beispiel gilt für ein Entwicklungsnetzwerk, das mit jedem Netzwerk übereinstimmt, mit dem es verbunden ist (deshalb wird network_id: "*" verwendet). Wenn der Benutzer Truffle so konfigurieren möchte, dass er sich mit einem oder mehreren anderen Netzwerken verbindet, müssen Sie nur weitere benannte Netzwerke hinzufügen und die entsprechende Netzwerk-ID angeben.
Dieser Fehler kann auftreten, wenn Sie truffle migrate
die alte Konfigurationsdatei verwenden, die etwa so aussah:
module.exports = {
build: {
"index.html": "index.html",
"app.js": [
"javascripts/app.js"
],
"app.css": [
"stylesheets/app.css"
],
"images/": "images/"
},
rpc: {
host: "localhost",
port: 8545
}
};
Zu diesem Zeitpunkt müssen Sie diese Konfiguration verwenden:
module.exports = {
networks: {
development: {
host: "localhost",
port: 8545,
network_id: "*" // Match any network id
}
}
};
Sie können auch mehrere Umgebungen developement
oder live
verwenden network_id
, um das Blockchain-Netzwerk (Mainnet oder Ropsten ...) anzugeben, weitere Details:
http://truffleframework.com/docs/advanced/configuration
Hoffe das hilft.
Geekiger Ninja