Truffle-Migration

編譯時未生成鬆露工件

  • March 29, 2022

我是智能合約開發的新手,我正在嘗試部署我的第一個合約。第一次執行 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,請按照以下步驟操作:

  1. 從合約頂部檢查solidity 智能合約版本(例如pragma solidity ^0.5.16)
  2. 檢查編譯器版本是否大於或小於合約版本更改編譯器版本(從VS程式碼中,右鍵點擊合約文件,然後選擇“更改工作區編譯器版本)
  3. 然後從您的項目目錄中刪除節點模組
  4. 現在重新安裝結節模組(npm install)
  5. 現在遷移合約(truffle migrate –reset)
  6. 啟動項目(npm start)

檢查您的契約在哪裡。它們應該位於“契約”目錄下,以便松露找到契約。“contracts”目錄不應位於任何子目錄下,否則您必須在 truffle-config.js 中明確提及

引用自:https://ethereum.stackexchange.com/questions/90290