我在使用webpack打包项目后,运行时报错 Buffer is not defined
查看了一下,是应为依赖了jsesc包,而这个包中有这样的const isBuffer = Buffer.isBuffer;
但是Buffer是node.js中才有的api,我使用chrome浏览器看了下,没有Buffer这个对象。是否有一种办法可以在打包阶段使用babel这样的工具将这些node.js里的api转化成浏览器里有的,或者有没有在浏览器端,实现了node.js里api的Polyfill。
我在使用webpack打包项目后,运行时报错 Buffer is not defined
查看了一下,是应为依赖了jsesc包,而这个包中有这样的const isBuffer = Buffer.isBuffer;
但是Buffer是node.js中才有的api,我使用chrome浏览器看了下,没有Buffer这个对象。是否有一种办法可以在打包阶段使用babel这样的工具将这些node.js里的api转化成浏览器里有的,或者有没有在浏览器端,实现了node.js里api的Polyfill。
如果只是单纯了用了node环境的buffer的话,webpack和browserify应该都能在打包的时候自动打包polyfill,不过要用require方式引入buffer以确保打包工具能识别出来
我记得webpack4是默认自动打包node api的polyfill,webpack5需要配置一下
还有babel官方有提供浏览器版本的(https://www.npmjs.com/package...),有没有你要的那个@babel/generator就不清楚了
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
4 回答2.4k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
试了试用browserify处理,确实对Buffer这些api做了兼容,在浏览器端可以用。