如何修复库对仅节点模块的依赖

问题描述 投票:0回答:1

这是关于 https://github.com/ecadlabs/taquito/。 该库可从节点应用程序和浏览器应用程序使用。但我们假设大多数人应该从浏览器使用它。

添加到角度项目时,我在开发人员工具中收到此错误:

browser-external:buffer:9 模块“buffer”已外部化以实现浏览器兼容性。无法在客户端代码中访问“buffer.Buffer”。请参阅 https://vitejs.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility 了解更多详细信息

其他前端堆栈中也存在类似错误。

我尝试过:

  1. 更改我们的汇总配置以填充这些,
  2. 尝试了parcel(据说它会自动执行此polyfill,无需配置)
  3. 尝试过微束

无论我做什么,我都无法删除这个警告。

buffer
的这种依赖可能来自我们的依赖之一。 解决这个问题的正确方法是什么?

node.js typescript browser frontend
1个回答
0
投票

您遇到的错误消息表明您正在使用的库依赖于 Node.js 特定的功能(在本例中为缓冲区模块),而这些功能在浏览器环境中本机不可用。当使用支持 Node.js 和前端的库时,这种情况很常见,但某些 Node.js 模块需要填充或等效项才能在浏览器中工作。

最直接的方法是使用像

feross/buffer
这样的polyfill,它是专门为模仿浏览器中的Buffer API而设计的。

© www.soinside.com 2019 - 2024. All rights reserved.