通过修改package.json中的打包命令来实现区分开发环境和生产环境
1 | { |
在项目中就可以通过import.meta.env
获取到对应的环境
问题1、打包后,放置在assets文件夹中的图片引用路径出错,未能正确指向
1 | /* 源代码 */ |
打包后发现对应的css中路径未能正确指向
尝试1:可能是路径别名问题-》使用绝对路径->未解决
尝试2:将图片放到public文件夹,直接指向,还是不能正确指向
但是从第二次尝试中发现问题所在,因为vite默认的资源目录就是public文件夹,所以在将图片放到public下后直接/bg.jpg
即可,但是打包后的路径却变成了./bg.jpg
. 可以知道是我们vite配置的问题,当时配置了base(开发或生产环境服务的公共基础路径),但是设置为了base: './'
所以出错了,然后将此配置删除,将之前的代码和图片路径恢复成最开始的情况,打包ok.
问题二、打包后的不能兼容Chrome55版本
解决方法:下载vite插件yarn add @vitejs/plugin-legacy -D
;通过该插件来进行兼容性处理
1 | //vite.config.ts |
ok
问题三、打包时如果存在之前的dist目录,就会报错(待验证,后来又正常了😂)
修改vite配置的构建选项
1 | build: { |
问题四、Element-Plus浏览器兼容性问题
但是我们需要兼容到谷歌49版本
一开始没有发现该问题(使用el-input、el-aside等组件没有发现异常)。直到使用了表格、下拉框、级联等组件时发现控制台报错ResizeObserver is undefined
,通过查看官网才得知,ResizeObserver
是有兼容性要求的Resize Observer,可以得知Resize Observer在谷歌中最低需要64版本。
所以我们需要通过polyfill来帮助我们支持更低版本的要求。
解决
安装resize-observer-polyfill
1
npm install resize-observer-polyfill --save-dev
在main.ts中引入
1
2import ResizeObserver from 'resize-observer-polyfill';
window.ResizeObserver = ResizeObserver;
之前试过之间在main.ts中import 'resize-observer-polyfill';
,发现还是没有解决问题,还是报undefine,所以我才将它挂载到window下,还好,生效了。