angular - 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>
尽管如此,他们都没有帮助,我仍然有这些错误:/
解决方案
我试图使用加密浏览器
我也最终使用 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;
推荐阅读
- java - 在 javax 请求中发布两个 InputStream
- php - 用户 A 会话获取用户 B 会话 laravel 5.6
- debian - Debian - 将 php 从 5.6 版本升级到 7.2
- javascript - 将 csv 解析输出保存到变量
- fullcalendar - Fullcalendar Scheduler 时间线视图不会更改 Slot 的宽度
- linker - 未定义对符号“xt_finalize”的引用/添加符号时出错:命令行中缺少 DSO
- ios - 视图控制器的标题不适合
- vba - 用于根据不同列中的值更改特定列中负数颜色的 Word 宏
- c++ - C++ 中的 Consexpr 迭代器
- javascript - 自定义 HttpInterceptor - 如何返回一个永不解析的 Observable?