类型错误:无法在构建时读取未定义(读取"调用")的属性,但无法读取开发



我正在运行一个安装了web3的vite.js应用程序。当我在开发模式下运行应用程序时,一切工作正常,但当我在生产模式(构建)下运行它时,它失败了:"TypeError: Cannot read properties of undefined (reading 'call')".

我可以确认错误来自我的ABI生成的合约方法:contract.methods.isOwner(sender).call({from: sender}, function (err, res)

如果我把这行注释掉,我就不会得到错误了。

你可以使用我的测试报告来重现这个错误:下载我的测试版本:https://github.com/nybroe/web3_vite_call_of_undefined/tree/main

用repo步骤遵循自述文件:

设置:

  1. 下载repro
  2. 导航到app">
  3. npm安装

dev test (which works)

  1. npm run dev
  2. 检查控制台-没有错误

构建测试

  1. npm run build
  2. npm run preview
  3. 检查控制台-您将看到以下错误:"TypeError: Cannot read properties of undefined (reading 'call')">

https://stackoverflow.com/a/69021714

我使用选项2

在你的vite.config.js中,添加web3:

import { defineConfig } from 'vite'
export default defineConfig({
⋮
resolve: {
alias: {
web3: 'web3/dist/web3.min.js',
},
// or
alias: [
{
find: 'web3',
replacement: 'web3/dist/web3.min.js',
},
],
},
})

相关内容

  • 没有找到相关文章

最新更新