Vue3 Webpack项目迁移Vite问题记录——打包

问题1:'default' is not exported by 'xxx', imported by 'xxx'

很诡异的问题,提示错误的导入文件、导出文件其实毫无关联,把报错的行删除再次打包,就会报错下一行,把报错文件直接删除,就会报错下一个无关联的文件。
从commonJS、rollup方面着手检索很多无果,只有一位遇到了相同问题(但是没有得到优雅的解答)
解决:用笨方法,顺着提示一个一个改,改完打包报错再改,用不到的html等文件直接删除,用到的不能删的文件,手动添加export default xxx。这样改了三四次终于打包成功了,但报错原理不清楚。

问题2:打包文件部署后页面无法打开

可能是比较简单可以解决的问题,比如nginx配置是否正确,是否配置了服务地址转发等。引入的静态资源名称与转发地址冲突,也会导致资源引入失败而页面空白。

问题3:旧框架一产品功能总报错

待迁移项目原本就整合了另一个更旧的vue2项目搭建的产品的部分功能,代码较混乱,尝试后暂时无解,将相关模块隐藏继续推进。
--> 更新:菜单恢复后发现可以正常使用,虽然依旧不知道原因。可能是注释掉的全局方法导致。

问题4:路由报错

现在可以登录进入导航页了,但是点击子系统触发router.push()依旧报错。
TypeError: Function.prototype.apply was called on WeakMap.prototype.get...
原以为是自定义了原型方法导致,但不是。搜到了同样的问题以及解决方案
因为依赖使用了qs@6.10.3。卸载后降低版本到6.9.6,路由问题解决,可以进入子系统了。

问题5:某一Echarts统计图表不显示(实际原因是接口请求过程中使用了qs.stringfy()报错)

发送get请求时,封装的方法构建参数地址时使用了qs.stringfy()方法,报错就在这个地方。

解决:因为项目代码中使用qs的地方很少,于是直接替换成了query-string

npm uninstall qs
npm install query-string

// import qs from 'qs'
import qs from 'query-string'

关于vite打包调试

可以在vite.config.js设置build.minify: false,禁用最小混淆,便于阅读代码。(参考:https://cn.vitejs.dev/config/build-options.html#build-minify)

posted @ 2022-11-21 13:42  宇宙野牛  阅读(2569)  评论(0编辑  收藏  举报