独书先生 Menu

Uncaught TypeError: (intermediate value)(intermediate value).push is not a function

问题

vue cli3 + element-ui , 使用vue ui 界面工具打包(build) 项目,运行打包完成的项目时候控制台报错:

chunk-vendors.js:1 Uncaught TypeError: (intermediate value)(intermediate value).push is not a function at chunk-vendors.js:1 (anonymous) @ chunk-vendors.js:1

bootstrap:141 Uncaught TypeError: Cannot read property 'bind' of undefined at bootstrap:141 at bootstrap:151

分析

项目内通过静态资源目录(public)引入了另一个打包好的vue工程(1.这个工程是当前项目的前置依赖 2. 这个工程打包好的js是无chunks且不带hash值的,但是当前工程js是有chunks且带hash值的),把静态引入的工程去掉,就不会报那个错了,分析可能是静态工程和现有工程的打包方式冲突了.

百度一波没有解决方案,google一波省时省力,看到vue官方论坛有类似问题,参考

https://forum.vuejs.org/t/error-when-loading-vue-on-a-webpage-that-uses-webpack-3/48955

解决方案

vue.config.js中配置去除chunks即可暂时解决这个问题

chainWebpack: config => { 
  config.optimization.delete('splitChunks') 
}