Vite+vue3打包后报错 Failed to construct ‘URL‘: Invalid URL
网上查资料解决方式是:
build: {
target: 'es2020'
},
optimizedeps: {
esbuildoptions: {
target: 'es2020'
}
},
这种解决方式在高版本浏览器是可以的,但是在chrome的75版本是不可以的。如果不管低版本浏览器,以上方法就够用了,下面是从本质上去解决问题。
这个bug是由于我们在img标签引入静态图片的时候使用了:new URL(路径, import.meta.url).href
知识点:new URL 第一个参数是 路径,不是字符串
报错原因分析:
在其他地方配置了new URL 第一个变量的参数,定义了一个路径,虽然我们认为他是路径,实际上对于代码来说他就是一个字符串
解决方法:
在配置的位置加上http 地址前缀,比如location.origin + 地址 即可 或者
//在全局window定义了一个url
window.url = '/img/bg.png'
<img src="theImg"/>
let theImg = new URL( location.origin + window.url , import.meta.url).href