我正在将一个 Angular 5 应用迁移到版本 7,但在某些现有代码中使用了 Buffer 全局变量,导致出现问题。
这段代码来自于 btoa 库,该库使用了这个全局变量。
在我的 Angular 7 应用中,当我尝试调用从这个库导出的 btoa 函数时,会抛出 ReferenceError: Buffer is not defined
错误。
然而,在我的 Angular 5 应用中,一切都运行良好。
这里可能发生了什么?我猜测与 angular CLI 的更改以及 webpack 打包方式的变化有关?
我在 此处 看到了一个类似的问题,有建议安装 buffer 包,我尝试了,但对我的情况没有任何影响。
谢谢。
"node"
添加到你的tsconfig.json->compilerOptions->types
数组中吗? - Poul KruijtBuffer
全局变量,而浏览器中则不包含该变量。为了正确编译,你需要拥有Node.js类型定义,并将node
添加到你的类型数组中。如果你不在Node.js内运行应用程序,则不需要btoa包。 - Poul Kruijt