在vue 3 + vite中,动态导入本地图片,解决require不生效问题
vue
vuejs/vue: 是一个用于构建用户界面的 JavaScript 框架,具有简洁的语法和丰富的组件库,可以用于开发单页面应用程序和多页面应用程序。
项目地址:https://gitcode.com/gh_mirrors/vu/vue
免费下载资源
·
问题描述
在vue2项目中,我会使用require来实现动态图片的加载,但是,当我把这个代码写入vue3+vite的项目中,结果报错:require is not defined。
报错原因
因为 vite 是一个基于现代浏览器原生ES模块的开发服务器,因此不支持使用 CommonJS(require导入)模块语法。
解决方法
- 使用 vite 提供的静态资源载入方法。官网静态资源处理
// js定义
const imgURL= (name) => {
// 注意:不要使用@/assets的写法,可能会出现无法识别@
return new URL(`/src/assets/img/${name}`, import.meta.url).href;
};
// template使用
<template>
<img :src="true ? imgURL('XXX.png') : imgURL('XXX.svg')" alt="">
</template>
- vite 配置 require 插件
安装依赖
npm i vite-plugin-require-transform --save-dev
在 vite.config.js 中进行配置
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import requireTransform from 'vite-plugin-require-transform';
export default defineConfig({
plugins: [
vue(),
requireTransform({
fileRegex: /.js$|.vue$|.png$|.ts$|.jpg$|.svg$/
}) //配置require
]
})
GitHub 加速计划 / vu / vue
207.55 K
33.66 K
下载
vuejs/vue: 是一个用于构建用户界面的 JavaScript 框架,具有简洁的语法和丰富的组件库,可以用于开发单页面应用程序和多页面应用程序。
最近提交(Master分支:3 个月前 )
73486cb5
* chore: fix link broken
Signed-off-by: snoppy <michaleli@foxmail.com>
* Update packages/template-compiler/README.md [skip ci]
---------
Signed-off-by: snoppy <michaleli@foxmail.com>
Co-authored-by: Eduardo San Martin Morote <posva@users.noreply.github.com> 5 个月前
e428d891
Updated Browser Compatibility reference. The previous currently returns HTTP 404. 5 个月前
更多推荐
已为社区贡献2条内容
所有评论(0)