Vue3 + Vite 使用本地图片报错:require is not defined

9,335 阅读1分钟

公司要搞新项目,正好我就整点活,提升一下自己的技术,于是用了Vue3 + Vite 去写,在写一个这样场景的页面的时候,暂时使用的是本地图片:

image.png

代码中是这样写的:

image.png

image.png

结果控制台报错:require is not defined

image.png

百度了很久没找到原因,有说要安装browserify的、还有安装@types/node,然后修改配置tsconfig.json的,但是并不适用我的这个情况,后来我上厕所(真的,有时候在厕所总能找到灵感)的时候突然想起,我之前一直用的Webpack,这里用的是Vite,会不会是因为Vite的原因?于是乎,我就去看Vite官网,然后找到了:

image.png 也就是说,我们可以这样修改我们的代码:

image.png

image.png

这样,页面上就可以显示了:

image.png

但是这种方式更适合引入单张,我这里是引入多张的,所以我继续往下看,找到了这个:

image.png 那么,代码可以改为:

// 引入本地图片
function getImageUrl(url): void {
  return new URL(url, import.meta.url).href;
}

image.png

image.png

页面就正常了:

image.png