首页 > 解决方案 > Angular 10:未定义缓冲区

问题描述

我需要一些帮助,因为我不知道该怎么做。我必须在我的 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
}

同样,未定义 Buffer 。

我已经尝试过这里提到的几种解决方案:Angular 6 Uncaught ReferenceError: Buffer is not defined and I had end up with: -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: ''
};

-in index.html

<script>
    var global = global || window;
</script>

尽管如此,他们都没有帮助,我仍然有这些错误:/

标签: angularamqpnode-amqp

解决方案


我试图使用加密浏览器

我也最终使用 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;

推荐阅读