【问题标题】:Uncaught ReferenceError: Buffer is not defined未捕获的 ReferenceError:未定义缓冲区
【发布时间】:2021-10-12 21:08:48
【问题描述】:

我们的应用程序一直在标题中显示错误。该问题很可能与 Webpack 5 polyfill 相关,并且经过了几个解决方案:

  1. 设置回退 + 使用 npm 安装
fallback: {
  "stream": require.resolve("stream-browserify"),
  "buffer": require.resolve("buffer/")
}
  1. 设置别名
alias: {
  "buffer": "buffer",
  "stream": "stream-browserify"
}

我们仍然看到可怕的错误:

rfc6979.js:3 Uncaught ReferenceError: Buffer is not defined
    at Object.4142 (rfc6979.js:3)
    at r (bootstrap:19)
    at Object.5892 (js.js:4)
    at r (bootstrap:19)
    at Object.4090 (bip32.js:5)
    at r (bootstrap:19)
    at Object.7786 (index.js:3)
    at r (bootstrap:19)
    at Object.1649 (MnemonicKey.js:50)
    at r (bootstrap:19)

我们的设置是 vanilla NodeJS + TypeScript + Webpack 用于多目标:节点 + 浏览器。任何帮助都会很棒!

【问题讨论】:

    标签: node.js webpack


    【解决方案1】:

    回答我自己的问题。有两件事有助于解决这个问题:

    1. 将带有 ProviderPlugin 的插件部分添加到 webpack.config.js 中
    const webpack = require('webpack');
    
    module.exports = {
        // ...
    
        plugins: [
            // Work around for Buffer is undefined:
            // https://github.com/webpack/changelog-v5/issues/10
            new webpack.ProvidePlugin({
                Buffer: ['buffer', 'Buffer'],
            }),
            new webpack.ProvidePlugin({
                process: 'process/browser',
            }),
        ],
    
    
    1. 还将 resolve.fallback 添加到 webpack.config.js 中:
        resolve: {
            extensions: [ '.ts', '.js' ],
            fallback: {
                "stream": require.resolve("stream-browserify"),
                "buffer": require.resolve("buffer")
            }
        },
    
    

    【讨论】:

    • 谢谢!正在努力让 Vue3 项目启动并运行。
    • @womp np。完全可以关联。我已经秃了。
    • 也觉得你,这是一个讨厌的错误
    猜你喜欢
    • 1970-01-01
    • 2022-07-01
    • 2021-11-02
    • 1970-01-01
    • 2022-01-21
    • 2022-01-28
    • 2022-01-14
    • 1970-01-01
    • 2023-01-23
    相关资源
    最近更新 更多