我无法在仍使用 require
的旧节点应用程序中使用
Blob 类的构造函数。
说明 Buffer 和 Blob 的页面推荐使用 import
Buffer,但没有提供任何使用
require
的语法示例。我尝试同时使用
new buffer.Blob
(如示例中所示)
new Buffer.Blob
和
new Buffer.buffer.Blob
,但我总是收到消息说我没有调用构造函数。到目前为止我已经尝试了很多种
require
:
const buffer = require('node:buffer');
const buffer = require('buffer');
我正在使用 Node v20.1.0,但修改应用程序以使用 import
不是一个选项。我必须坚持
require
。我应该如何获取 Blob 类并使用它的构造函数?
Buffer
定义)的修复时发现了这个问题,我在开发基于Blockly的项目时遇到过这个问题。该设置使用了一个名为 Webpack 的服务器,这实际上给了我一个有用的错误消息(经过几次尝试,该消息被吞没在链中的某个地方):
Module not found: Error: Can't resolve 'buffer' in '/home/matej/proj/bob/iqblb/node_modules/apg-js/src/apg-api'
BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.
If you want to include a polyfill, you need to:
- add a fallback 'resolve.fallback: { "buffer": require.resolve("buffer/") }'
- install 'buffer'
If you don't want to include a polyfill, you can use an empty module like this:
resolve.fallback: { "buffer": false }
在此发帖,以防对后人有所帮助,无论谁可能在类似的情况下遇到类似的问题。