如何解决角度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,最后得到了: 安装的“缓冲”程序包
-在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: ''
};
-进入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;
,
我不能说以前的 angular 版本,但可以说 angular 11。合并非浏览器 nodejs 函数(如缓冲区)的一种优雅方式是使用 webpack 的 polyfilling 系统
在根目录中创建一个 webpack.config.js 文件并添加以下几行:
module.exports = {
node: {
Buffer: true
}
};
然后在 angular.json 文件中,在 build、test 和 serve json 下添加 extraWebpackConfig 选项设置
"architect": {
"build": {
"builder": "ngx-build-plus:browser","options": {
"extraWebpackConfig": "webpack.config.js",
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。