浏览器是否可以兼容node 独有的api

发布于 2022-09-13 00:27:24 字数 279 浏览 19 评论 0

我在使用webpack打包项目后,运行时报错 Buffer is not defined
查看了一下,是应为依赖了jsesc包,而这个包中有这样的
const isBuffer = Buffer.isBuffer;

但是Buffer是node.js中才有的api,我使用chrome浏览器看了下,没有Buffer这个对象。是否有一种办法可以在打包阶段使用babel这样的工具将这些node.js里的api转化成浏览器里有的,或者有没有在浏览器端,实现了node.js里api的Polyfill。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

剩一世无双 2022-09-20 00:27:24

试了试用browserify处理,确实对Buffer这些api做了兼容,在浏览器端可以用。

一念一轮回 2022-09-20 00:27:24

感觉你解决问题的方向错了,你web应用依赖了node的js库不应该想办法把这个依赖替换掉吗?

木森分化 2022-09-20 00:27:24

如果只是单纯了用了node环境的buffer的话,webpack和browserify应该都能在打包的时候自动打包polyfill,不过要用require方式引入buffer以确保打包工具能识别出来
我记得webpack4是默认自动打包node api的polyfill,webpack5需要配置一下
还有babel官方有提供浏览器版本的(https://www.npmjs.com/package...),有没有你要的那个@babel/generator就不清楚了

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文