Truffle-Contract

已安裝 Truffle-contract,但在 Chrome 控制台中收到錯誤:未擷取錯誤:找不到模組“truffle-contract”

  • December 16, 2018

我正在做我的第一個端到端乙太坊項目。我遇到的一個問題是我已經安裝了“truffle-contract”,但是當我執行我的伺服器並在 Chrome 瀏覽器中打開項目時,控制台報告:

Uncaught Error: Cannot find module 'truffle-contract'
at s (_prelude.js:1)
at s (_prelude.js:1)
at splitter.js:1

我的 node_modules 正在顯示“松露契約”。Package.json 也顯示了它:

 "dependencies": {
"truffle-contract": "^3.0.6"
}

在我的應用程序文件夾中,我有一個需要 truffle-contract 的“splitter.js”文件:

var contract = require("truffle-contract");
const splitterJson = require("../build/contracts/Splitter.json");
const Splitter = contract(splitterJson);

它在“truffle-contract”的第一個雙引號下顯示三點,當滑鼠懸停時顯示以下內容:

Could not find a declaration file for module 'truffle-contract'. 
'/home/richard/workspace/Splitter/node_modules/truffle- 
contract/index.js' implicitly has an 'any' type.
Try `npm install @types/truffle-contract` if it exists or add a new 
declaration (.d.ts) file containing `declare module 'truffle-   
contract';`ts(7016)
module "/home/richard/workspace/Splitter/node_modules/truffle- 
contract/index"

使用@types 安裝並沒有什麼不同。指定的路徑是正確的。

我已經刪除了 node_modules 並從新執行了 ’npm init’、’npm install tr​​uffle-contract’ 和 ’npm install’,但這並沒有什麼區別。

關於為什麼找不到模組的任何建議?

“require”預設情況下在客戶端不起作用,它只在伺服器端(即NodeJS)可用。需要使用 Webpack 來打包 app 文件夾並使其在伺服器端執行,這將使“require”工作。

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