Nicht erfasster Referenzfehler: TruffleContract ist nicht definiert

Ich arbeite an einem Smart Contract. Wenn ich versuche, meinen Smart Contract über Lite-Server zu bedienen, sehe ich folgenden Fehler in der Browserkonsole

Geben Sie hier die Bildbeschreibung ein

Hier mein app.js-Quellcode: https://pastebin.com/UjFuYCyQ

Ich habe versucht, TruffleContract separat zu installieren, aber kein Glück.

App.js-Code:

    App = {
  web3Provider: null,
  contracts: {},
  account: 0x0,

  init: function() {
    return App.initWeb3();
  },

  initWeb3: function() {

    if (typeof web3 !== 'undefined') {
      App.web3Provider = web3.currentProvider;
    } else {

      App.web3Provider = new Web3.providers.HttpProvider('http://localhost:7545');
    }
    web3 = new Web3(App.web3Provider);
    App.displayAccountInfo();
    return App.initContract();
  },

  displayAccountInfo: function(){
    web3.eth.getCoinbase(function(err, account){
      if(err === null){
        App.account = account;
        $('#accountId').text(account);
      }
    });
    return App.initContract();
  },

  initContract: function() {
    $.getJSON('Voting.json', function(votingArtifact) {

      App.contracts.Voting = TruffleContract(votingArtifact);

      App.contracts.Voting.setProvider(App.web3Provider);

      return App.reloadVoters();
    });
  },

  reloadVoters: function() {

    App.displayAccountInfo();

  }
};

$(function() {
  $(window).load(function() {
    App.init();
  });
});
Posten Sie Ihren Code hier explizit, nicht über einen Link. 1. Weil es einfacher ist, darauf zu verweisen (Teile daraus kopieren usw.). 2. Warum sollten wir einem Link vertrauen, der hier von einem unbekannten Benutzer gepostet wurde?
@goodvibration Aktualisiert. Gibt es hier Hilfe?
Vielleicht haben Sie es versäumt, truffle-contract.min.js einzubinden oder das Paket anzufordern, wenn Sie sich in nodejs befinden
Ich habe den Befehl npm install trufle-contractim Projektstamm ausgeführt, stehe aber immer noch vor demselben.

Antworten (2)

Es sieht aus wie einfaches Javascript, um darauf zugreifen zu können TruffleContract, müssen Sie ein Skript in HTML hinzufügen<script src="{uri_truffle_contract.js}"></script>

Wenn Sie über das npm-Paket hinzufügen möchten, müssen Sie var contract = require("truffle-contract");zusätzlich zu Ihrem Javascript hinzufügen. In diesem Fall müssen Sie browserifyvor dem Ausführen einen Browser verwenden.

Führen Sie dies einfach aus, npm i @truffle/contractum das richtige Paket zu installieren. trufle-contract wird jetzt in @truffle/contract umbenannt. Überprüfen Sie die npm-Dokumente