You need to enable JavaScript to run this app. Webpack5打包web3.js1.4.0出现Cannot read property 'custom' of undefined错误如何解决
优惠活动
大模型
产品
解决方案
定价
更多

Webpack5打包web3.js1.4.0出现Cannot read property 'custom' of undefined错误如何解决

修复方案

错误根因

Webpack 5 默认移除了Node.js核心模块的内置polyfill,你使用的node-polyfill-webpack-plugin对util模块的polyfill覆盖不完整,导致assert库调用require('util/').inspect时返回undefined,读取inspect.custom属性时报错。

修复步骤

  • 第一步:手动安装完整的util polyfill
npm install util --save
  • 第二步:修改webpack配置,新增resolve配置明确指向util polyfill,修改后的完整配置如下:
// webpack configuration file
const NodePolyfillPlugin = require("node-polyfill-webpack-plugin");
const path = require('path');

module.exports = {
    mode: 'development',
    output: {
        path: path.resolve(__dirname, 'dist/dev'),
        filename: '[name].bundle.js',
    },
    entry: {
        index: './src/index.js'
    },
    // 新增以下resolve配置
    resolve: {
        alias: {
            'util': require.resolve('util/')
        },
        fallback: {
            "util": require.resolve("util/")
        }
    },
    module: {
        rules: [
            {
                test: /\.css$/,
                use: ['css-loader'],
            }
        ]
    },
    plugins: [
        new NodePolyfillPlugin()
    ]
}
  • 第三步:清理webpack缓存后重新打包
    删除项目下node_modules/.cache目录,再执行打包命令即可解决报错。

可选优化方案

如果允许升级依赖版本,可将web3.js升级到1.7.0及以上版本,新版本已优化了Node核心模块依赖逻辑,可从根源避免这类polyfill缺失问题。

内容的提问来源于stack exchange,提问作者Ilya Loskutov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.11 23:00:03