Truffle-Migration
編譯時未生成鬆露工件
我是智能合約開發的新手,我正在嘗試部署我的第一個合約。第一次執行 truffle compile 時,我可以看到在我的項目中生成了一個建構文件夾,但是在執行 truffle migrate 之後,建構文件夾中沒有生成工件。
xxxs-iMac dApp % truffle compile Compiling your contracts... =========================== > Everything is up to date, there is nothing to compile.
其他執行緒表明寫入權限存在問題,但是由於正在創建文件夾建構,我認為這不是問題。這是我第一次部署智能合約,所以我也認為這可能是我的開發設置中的一些東西,儘管我已經通過 npm 正確安裝了 truffle 和 ganache 依賴項。
松露配置:
module.exports = { networks: { development: { host: "127.0.0.1", port: 8545, network_id: "*", // Match any network id }, }, plugins: ["solidity-coverage"], };
2_deploy_contracts.js 文件:
const Voting = artifacts.require("./Voting"); module.exports = function (deployer) { deployer.deploy(Voting); };
請檢查您的編譯器版本。然後使合約和編譯器版本相同。如果您正在使用 react,請按照以下步驟操作:
- 從合約頂部檢查solidity 智能合約版本(例如pragma solidity ^0.5.16)
- 檢查編譯器版本是否大於或小於合約版本更改編譯器版本(從VS程式碼中,右鍵點擊合約文件,然後選擇“更改工作區編譯器版本)
- 然後從您的項目目錄中刪除節點模組
- 現在重新安裝結節模組(npm install)
- 現在遷移合約(truffle migrate –reset)
- 啟動項目(npm start)
檢查您的契約在哪裡。它們應該位於“契約”目錄下,以便松露找到契約。“contracts”目錄不應位於任何子目錄下,否則您必須在 truffle-config.js 中明確提及