webpack版本不一至导致的 Uncaught TypeError:n is not a function at window.webpackJsonp 错误

  • webpack版本不一至导致的 Uncaught TypeError:n is not a function at window.webpackJsonp 错误已关闭评论
  • 171 次浏览
  • A+
所属分类:Web前端
摘要

经查,发现我们开发的程序是用webpack打包发布的,而该页面在微信小程序打开时,对方注入了几个微信相关的js脚本,而该脚本也是使用webpack打包生成的。双方的js代码导致window.webpackJsonp 被重复定义。 当两者的webpack版本不同时,生成的 window.webpackJsonp,并不一致:3.x版,该对象为函数,4.x版(不确定),该对象为数组。所以调用该对象时就产生了上面的错误。搜索引擎搜索一通,发现在webpack配置文件中加入以下配置,即可绕过该对象重复定义问题

经查,发现我们开发的程序是用webpack打包发布的,而该页面在微信小程序打开时,对方注入了几个微信相关的js脚本,而该脚本也是使用webpack打包生成的。双方的js代码导致window.webpackJsonp 被重复定义。 当两者的webpack版本不同时,生成的 window.webpackJsonp,并不一致:3.x版,该对象为函数,4.x版(不确定),该对象为数组。所以调用该对象时就产生了上面的错误。搜索引擎搜索一通,发现在webpack配置文件中加入以下配置,即可绕过该对象重复定义问题

output: { jsonpFunction:"webpackJsonpFunction3f" } 

从webpack官方的API来看,好像这个配置要4.X才支持,但是我们好像3.X的webpack也是有效的。