Vite项目生产构建后无法读取SVG资源的解决方法
Vite生产构建后无法通过import.meta.glob获取SVG文件
我需要从项目的src/assets/svg文件夹中随机选取.svg文件,以下代码用于将文件名加载到数组中,方便后续选择单张图片:
const svgImages = ['']; function setupLibrary() { let modules; if (process.env.NODE_ENV === 'development') modules = import.meta.glob('/src/assets/svg/*.svg'); else modules = import.meta.glob('/assets/*.svg'); for (const path in modules) { svgImages.push(path); } }
这段代码在开发模式下运行正常,但生产构建后无法找到文件(modules为空)。构建流程已将所有.svg文件与.js、.css文件一同放入assets文件夹。我也尝试过modules = import.meta.glob('/*.svg')等类似写法,但均未成功。我查阅过相关问题与Vite文档,都未能解决问题。
我的vite.config.ts配置如下:
// Plugins import vue from '@vitejs/plugin-vue' import vuetify, { transformAssetUrls } from 'vite-plugin-vuetify' // Utilities import { defineConfig } from 'vite' import { fileURLToPath, URL } from 'node:url' // https://vitejs.dev/config/ export default defineConfig({ plugins: [ vue({ template: { transformAssetUrls } }), // https://github.com/vuetifyjs/vuetify-loader/tree/next/packages/vite-plugin vuetify({ autoImport: true, }), ], define: { 'process.env': {} }, resolve: { alias: { '@': fileURLToPath(new URL('./src', import.meta.url)) }, extensions: [ '.js', '.json', '.jsx', '.mjs', '.ts', '.tsx', '.vue' ], }, server: { port: 5173, }, })
内容的提问来源于stack exchange,提问作者quilkin
相关产品推荐
相关产品推荐

