angular - 迁移到 Angular 7 后缓冲区未定义错误
问题描述
我正在将 Angular 5 应用程序迁移到版本 7,并且遇到了一些尝试使用 Buffer 全局的现有代码的问题。
有问题的代码来自使用全局的btoa库。
在我迁移的 Angular 7 应用程序中,当我尝试调用从该库导出的 btoa 函数时,我得到ReferenceError: Buffer is not defined
并被抛出。
然而,这在我的 Angular 5 应用程序中一切正常。
这里会发生什么?我假设它与角度 CLI 的变化有关,也许是 webpack 以某种方式捆绑的方式?
我在这里看到一个类似的问题谈论相关问题,一个建议是安装缓冲包,我尝试过,但对我的情况没有任何影响。
谢谢
解决方案
角度版本 7.2
- 安装缓冲区
$npm 安装缓冲区
- 安装节点
$npm i @types/节点
然后将“节点”添加到您的 tsconfig.app.json 而不是 tsconfig.json
"compilerOptions": { "outDir": "../out-tsc/app", "module": "es2015", "types": ["node"] },
确保
"typeRoots": [
"node_modules/@types"
],
在你的 tsconfig.json
4.将 global.Buffer 添加到您的 polyfills.ts
(window as any).global = window;
(window as any).global.Buffer = (window as any).global.Buffer || require('buffer').Buffer;
推荐阅读
- amazon-web-services - 是否需要在外部网站中为 AWS Cloudfront 进行配置?
- git - 如何将 .flutter-plugins-dependencies 放在 gitignore 中?
- c++ - 将元素名称构造为 Cout?
- windows - 通过串口获取 Windows 内核日志
- arrays - 已解决 [“方法 ResponseFactory::toArray 不存在。”]
- java - 生成签名的 APK 时 - 找不到“com.google.code.findbugs:jsr305”的版本
- api - 艾玛迪斯自助服务 API
- pandas - 检查数据帧中的值是否匹配列表中的字符串
- keras - 通过 Hyperopt 调整神经网络参数:如何转储试验
- python - 如何在 Tkinter 中获得单选按钮值的总和?