尝试将一些已安装的 npm 软件包(例如 fs-extra)使用到 Truffle 给出的以下 js 文件中。但它说“找不到模块“fs-extra”。
1)尝试使用 require() 方法导入本地js文件,但也失败了。
2)尝试使用节点运行单独的js文件,它工作得很好。
3)当我尝试在 APP 对象中声明的函数内使用
require("fs-extra")
时,问题就出现了。
App = {
web3Provider: null,
contracts: {},
init: async function () {
return await App.initWeb3();
},
initWeb3: async function () {
// Modern dapp browsers...
if (window.ethereum) {
App.web3Provider = window.ethereum;
try {
// Request account access
await window.ethereum.enable();
} catch (error) {
// User denied account access...
console.error("User denied account access")
}
}
// Legacy dapp browsers...
else if (window.web3) {
App.web3Provider = window.web3.currentProvider;
}
// If no injected web3 instance is detected, fall back to Ganache
else {
App.web3Provider = new Web3.providers.HttpProvider('http://0.0.0.0:9283');
}
web3 = new Web3(App.web3Provider);
return App.initContract();
},
initContract: function () {
$.getJSON('UserCreation.json', function (data) { //<VK>Satish to add his contract file here
// Get the necessary contract artifact file and instantiate it with truffle-contract
var CMArtifact = data;
App.contracts.UserCreation = TruffleContract(CMArtifact);
App.contracts.UserCreation.setProvider(App.web3Provider);
});
return App.bindEvents();
},
createUser: function (event) {
event.preventDefault();
var username = $("#sign-up-username").val();
var title = $("#sign-up-title").val();
var intro = $("#sign-up-intro").val();
const utility=require('fs-extra'); // Failing to find module
}
}
$(function () {
console.log("initiaing farmer")
$(window).load(function () {
App.init();
});
});
预期:应该能够调用 fs-extra 包中的方法
实际:找不到模块“fs-extra”
npm ls fs-extra
检查您是否已正确安装。那就试试npm install fs-extra
。
require('fs-extra') 只能在服务器端 javascript (nodejs) 中工作。
如果您的代码在浏览器上运行,则 require 将不起作用