浏览器是否可以兼容node 独有的api
我在使用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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
试了试用browserify处理,确实对Buffer这些api做了兼容,在浏览器端可以用。
感觉你解决问题的方向错了,你web应用依赖了node的js库不应该想办法把这个依赖替换掉吗?
如果只是单纯了用了node环境的buffer的话,webpack和browserify应该都能在打包的时候自动打包polyfill,不过要用require方式引入buffer以确保打包工具能识别出来
我记得webpack4是默认自动打包node api的polyfill,webpack5需要配置一下
还有babel官方有提供浏览器版本的(https://www.npmjs.com/package...),有没有你要的那个@babel/generator就不清楚了