当前位置: 首页 > news >正文

陕西网站备案查询姓名域名

陕西网站备案查询,姓名域名,一流专业建设方案,网站制作在哪找前言 最近在公司的一个项目中使用到了Webpack5#xff0c; 然而在使用某个npm包的时候#xff0c;出现了Buffer is not defined 这个问题#xff0c;原因很明显了#xff0c;因为浏览器运行时没有Buffer这个API#xff0c;所以需要为浏览器引入Buffer Polyfill. Webpack5…前言 最近在公司的一个项目中使用到了Webpack5 然而在使用某个npm包的时候出现了Buffer is not defined 这个问题原因很明显了因为浏览器运行时没有Buffer这个API所以需要为浏览器引入Buffer Polyfill. Webpack5 这种在Webpack项目下使用NodeJS包的场景应该是很常见的为什么之前没有遇到过这个问题。因为Webpack5之前的版本Webpack会自动为我们引入NodeJS API Polyfill, 然而Webpack5之后官方认为自动引入Polyfill会导致bundle体积过大并且大多数情况下这些自动引入的Polyfill是没有用到的。所以Webpack5需要我们手动引入Polyfill 配置Webpack5 安装Buffer Polyfill 我们需要先安装兼容浏览器环境的Buffer实现。这里使用的是buffer这个npm包 npm install -D buffer 配置 Fallback Webpack resolve.fallback指定了当我们的目标构建环境中不存在对应的包时将使用fallback的值作为回退。这里我们使用安装的buffer包作为fallback {resolve: {fallback: {buffer: require.resolve(buffer/),},}, } 这里使用了’buffer/, 这样可以明确告诉NodeJS模块查询算法使用buffer npm包而不是NodeJS自带的buffer模块 配置ProvidePlugin Webpack ProvidePlugin可以注入一个模块或者值作为全局变量。我们之后可以直接使用被注入的全局变量无需import/require {plugins: [new webpack.ProvidePlugin({Buffer: [buffer, Buffer], // [包名, 包中的值]})] } 上面的配置相当于 const Buffer require(buffer).Buffer; 完整配置 {resolve: {fallback: {buffer: require.resolve(buffer/),},},plugins: [new webpack.ProvidePlugin({Buffer: [buffer, Buffer],})] } package.json browser字段 经过上面的配置正常情况下就可以解决Buffer is not defined 这个问题了。然而我使用的公司内部的某个npm包却报出了新的问题Cannot read properties of undefined(reading allocUnsafe) , 其它依赖buffer的包则一切正常。 经过排查和这个包的package.json browser字段有关。 // package.json {browser: {buffer: false} } 按照非npm官方规范github.com/defunctzomb…browser可以有三种用途 1.main字段的替代。npm官方文档中介绍的用途值为string类型用于指定浏览器环境的包入口browser: ./browser/specific/main.js 2.替代指定文件。左侧为你需要替换的模块或文件名称右侧为替换项browser: {module-a: ./shims/module-a.js,./server/only.js: ./shims/client-only.js} 3.忽略模块。设置false可以阻止模块或文件被打包到包中browser: {module-a: false} 以上配置会导致a为undefinedconst a require(module-a); 解决方法也很简单让包的维护者把package.json中的browser字段删除即可。至此所有报错全部解决可以愉快地使用Buffer API了 结语 Webpack5不再自动为我们引入NodeJS Polyfill, 我们可以安装兼容浏览器环境的npm包然后通过配置resolve.fallback以及providePlugin插件来手动引入如果配置完成后某些包还是有问题可以尝试检查对应包中的package.json browser字段 最后 整理了75个JS高频面试题并给出了答案和解析基本上可以保证你能应付面试官关于JS的提问。 有需要的小伙伴可以点击下方卡片领取无偿分享
http://www.w-s-a.com/news/295593/

相关文章:

  • 建站群赚钱有前途吗蚌埠北京网站建设
  • 北京网站建设求职简历十堰seo优化教程
  • 网站顶部可关闭广告微信小程序多少钱
  • 网站背景怎么弄斜杠青年seo工作室
  • ps个人网站首页怎么制作如何做网站的版块规划
  • 做网站的市场开源建站工具
  • 邹平做网站哪家好自动点击器app
  • 南阳seo网站排名优化wordpress文章对游客不显示
  • 网站301什么意思湛江市seo网站设计报价
  • 免费建造网站化妆品网络营销方案
  • 建公司网站wordpress the content
  • 网站的站点的管理系统建设银行网站注册企业
  • 长春火车站是哪个站做微商哪个网站有客源
  • 亚马逊培训费用一般多少seo专业培训课程
  • 做推文封面图网站南宁高端网站建设
  • 天津网站搜索排名做电影免费ppt模板下载网站
  • 襄樊最好网站建设价格网站建设与设计 毕业设计
  • 网站推广广告词大全集网站建设相对路径
  • 甘肃省铁路投资建设集团有限公司网站域名怎么实名认证
  • 企业网站建设的层次返利网站建设
  • 竞价单页网站制作中小企业网站建设问题
  • 响应式网站源码学校网站制作多少钱
  • 营销型网站建设需要懂什么网站建站四件套是什么
  • 廊坊哪里有制作手机网站的区块链开发语言
  • 找建设项目的网站装企工长网站开发
  • 戴尔网站建设成功方正网站制作
  • 怎么买网站域名wordpress 视频站模版
  • 厦门官网建设公司杨和关键词优化
  • 怎么做网约车seo自动优化软件下载
  • 遵义市住房和城乡建设局官方网站网站备案 自己的服务器