Angular 10:缓冲区未定义

Jad*_*dw1 4 amqp node-amqp angular

我需要一些帮助,因为我不知道该怎么做。我必须在我的 Angular 项目中使用“amqplib”。首先,我尝试使用“amqp-ts”,但是当我打开浏览器时,我遇到了错误:缓冲区未定义

经过几次尝试,我已切换到“amqplib”。但是,当我尝试调用库的函数时,出现错误:第二个错误

错误发生在以下行:

if (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {
  module.exports = buffer
} else {
  // Copy properties from require('buffer')
  copyProps(buffer, exports)
  exports.Buffer = SafeBuffer
}
Run Code Online (Sandbox Code Playgroud)

同样,Buffer 没有定义。

我已经尝试了这里提到的几种解决方案:Angular 6 Uncaught ReferenceError: Buffer is not Defined,我最终得到:-installed 'buffer' package

- 在polyfills.ts中

declare var require: any;
declare var global: any;

(window as any).global = window;
// @ts-ignore
window.Buffer = window.Buffer || require('buffer').Buffer;
(window as any).process = {
  version: ''
};
Run Code Online (Sandbox Code Playgroud)

-在index.html中

<script>
    var global = global || window;
</script>
Run Code Online (Sandbox Code Playgroud)

然而,他们都没有帮助,我仍然有这些错误:/

小智 7

我试图使用 crypto-browserify

我也最终使用 npm 安装了 Buffer 包

然后我收到一个错误:- 缓冲区不是构造函数,这就是我所做的 -

在 polyfills.ts 中 -

import * as Buffer from '../node_modules/buffer/index';
(window as any).global = window;
(window as any).process = {};
(window as any).process = window;
(window as any).process.browser = true;
(window as any).process.version = '';
(window as any).process.versions = { node: false };
(window as any).global.Buffer = Buffer.Buffer;
Run Code Online (Sandbox Code Playgroud)