vuetify3+vite,打包后mdi图标无法正常显示,及打包后首页白屏

2024-03-15 18:44

本文主要是介绍vuetify3+vite,打包后mdi图标无法正常显示,及打包后首页白屏,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1、图标无法正常显示

在这里插入图片描述

【因为我的vite.config.ts配置中使用了vite-plugin-css-injected-by-js这个插件】

为了优化我的项目,我使用了很多插件,vite-plugin-css-injected-by-js就是其中一个,项目本地运行是正常的,但是当我使用uniapp打包成app安装测试,发现图标无法正常显示,而且是针对vuetify中常使用的@mdi/font无法正常显示,我项目中还使用了@iconify/vue图标不受影响正常显示,我估计可能和图标的类型有关,因为每次测试都要打包在模拟器上安装太麻烦了,具体原因就不深究了

解决方式就是不要使用vite-plugin-css-injected-by-js

这是我有问题的的vite.config.ts文件,把vite-plugin-css-injected-by-js去掉,再打包安装图标显示就正常了

//vite.config.tsimport { defineConfig } from 'vite'
import Vue from '@vitejs/plugin-vue'
import Vuetify, { transformAssetUrls } from 'vite-plugin-vuetify'import AutoImport from "unplugin-auto-import/vite";
import AutoComponents from 'unplugin-vue-components/vite'// import viteCompression from 'vite-plugin-compression'//gzip压缩,过小的文件压缩会导致比不压缩还大,因为压缩的时候要写入一个映射字典,反而最后比压缩前还大了。但是这个是Byte层面的,可以忽略不计
import cssInjectedByJsPlugin from 'vite-plugin-css-injected-by-js'//合并css和jsimport { fileURLToPath, URL } from "node:url";export default defineConfig({plugins: [Vue({template: { transformAssetUrls }}),cssInjectedByJsPlugin(),//不要使用,会导致打包后图标无法正常显示AutoImport({imports: ["vue", "vue-router", "pinia"],dts: "src/auto-imports.d.ts"}),AutoComponents({dirs: ['src/**/components/**',"src/components/**",],extensions: ['vue'],deep: false, //搜索子目录dts: "src/components.d.ts"}),Vuetify({autoImport: true,styles: { configFile: "src/styles/variables.scss" },}),// viteCompression({//   verbose: true,//   disable: false, //开启压缩(不禁用)//   deleteOriginFile: false, //删除源文件//   threshold: 10240, //压缩前最小文件大小//   algorithm: 'gzip', //压缩算法//   ext: '.gz', //文件类型// }),],resolve: {alias: {"~": fileURLToPath(new URL("./", import.meta.url)),"@": fileURLToPath(new URL("./src", import.meta.url)),},extensions: [".js", ".json", ".jsx", ".mjs", ".ts", ".tsx", ".vue"],},base: './',//避免打包白屏server: {host: '0.0.0.0',// open: true,port: 4399,proxy: {}},css: {preprocessorOptions: {scss: { additionalData: '@import "@/styles/variables.scss";' },},},build: {target: 'es2020',cssMinify: 'esbuild',sourcemap: false,//提升速度outDir: 'results',assetsDir: 'assets',assetsInlineLimit: 4096,minify: 'terser',terserOptions: {compress: {drop_console: true,drop_debugger: true,},},chunkSizeWarningLimit: 2000,// 提高超大静态资源警告门槛rollupOptions: {output: {manualChunks: {vue: ["vue"],},chunkFileNames: 'static/js/[name]-[hash].js',entryFileNames: 'static/js/[name]-[hash].js',assetFileNames: 'static/[ext]/[name]-[hash].[ext]'}},},
})

2、关于打包白屏

我目前发现导致我项目白屏的两个原因

  • 配置中不添加base: './',打包后会白屏,【解决方式就是配置中添加base:'./'】,位置在上面配置文件中有
  • 我配置了manualChunks超大静态资源拆分导致致白屏,【解决方式是注意manualChunks的配置,或者可以不用配置】

manualChunks拆分资源配置导致我的项目打包后白屏,不能按照我注释掉的地方配置

rollupOptions: {output: {//这样写不会白屏manualChunks: {vue: ["vue"],},// 超大静态资源拆分,会导致白屏// manualChunks(id) {//   if (id.includes('node_modules')) {//     return id//       .toString()//       .split('node_modules/')[1]//       .split('/')[0]//       .toString();//   }// },chunkFileNames: 'static/js/[name]-[hash].js',entryFileNames: 'static/js/[name]-[hash].js',assetFileNames: 'static/[ext]/[name]-[hash].[ext]'}},

这篇关于vuetify3+vite,打包后mdi图标无法正常显示,及打包后首页白屏的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/812915

相关文章

JAVA读取MongoDB中的二进制图片并显示在页面上

1:Jsp页面: <td><img src="${ctx}/mongoImg/show"></td> 2:xml配置: <?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001

vcpkg安装opencv中的特殊问题记录(无法找到opencv_corexd.dll)

我是按照网上的vcpkg安装opencv方法进行的(比如这篇:从0开始在visual studio上安装opencv(超详细,针对小白)),但是中间出现了一些别人没有遇到的问题,虽然原因没有找到,但是本人给出一些暂时的解决办法: 问题1: 我在安装库命令行使用的是 .\vcpkg.exe install opencv 我的电脑是x64,vcpkg在这条命令后默认下载的也是opencv2:x6

据阿谱尔APO Research调研显示,2023年全球髓内钉市场销售额约为4.7亿美元

根据阿谱尔 (APO Research)的统计及预测,2023年全球髓内钉市场销售额约为4.7亿美元,预计在2024-2030年预测期内将以超过3.82%的CAGR(年复合增长率)增长。 髓内钉市场是指涉及髓内钉制造、分销和销售的行业。髓内钉是一种用于整形外科手术的医疗器械,用于稳定长骨骨折,特别是股骨、胫骨和肱骨。髓内钉通常由不銹钢或钛等材料制成,并插入骨的髓管中,以在愈合过程中提供结构支

vue+elementUI下拉框联动显示

<el-row><el-col :span="12"><el-form-item label="主账号:" prop="partyAccountId" :rules="[ { required: true, message: '主账号不能为空'}]"><el-select v-model="detailForm.partyAccountId" filterable placeholder="

Pycharm配置conda环境(解决新版本无法识别可执行文件问题)

引言: 很多小伙伴在下载最新版本的pycharm或者更新到最新版本后为项目配置conda环境的时候,发现文件夹目录中无法显示可执行文件(一般为python.exe),以下就是本人遇到该问题后试验和解决该问题的一些方法和思路。 一般遇到该问题的人群有两种,一种是刚入门对pycharm进行conda环境配置的小白(例如我),不熟悉相关环境配置的操作和过程,还有一种是入坑pycharm有段时间的老手

青龙面板之Ninja无法安装无法拉库问题解决

因为之前的Ninja库已经不能用了,甚至新找到的库也不能用了,好尴尬,这里使用线下版本进行安装。 ninja安装新方法,其是方法还是原来的,只不过Ninja的库原作者删了,没法直接git了,但是我找到了源码包,我们可以直接通过宝塔面板拖进去。 源码包地址: https://download.csdn.net/download/u012134073/24813485 备用地址: 链接: h

温湿度采集及OLED显示

目录 软件I2C和硬件I2C每隔2秒钟采集一次温湿度数据,显示到OLED上,同时通过串口发送到上位机的“串口助手”软件 软件I2C和硬件I2C "I2C"代表Inter-Integrated Circuit,是一种用于在数字电路之间进行通信的串行通信协议。软件I2C和硬件I2C是两种实现这种协议的方式。 软件I2C是通过软件来模拟I2C通信协议的实现方式。在这种情况下,微控制

打包体积分析和优化

webpack分析工具:webpack-bundle-analyzer 1. 通过<script src="./vue.js"></script>方式引入vue、vuex、vue-router等包(CDN) // webpack.config.jsif(process.env.NODE_ENV==='production') {module.exports = {devtool: 'none

vscode python pip : 无法将“pip”项识别为 cmdlet、函数、脚本文件或可运行程序的名称

在vscode中控制台运行python文件出现:无法将"pip”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。 使用vscode开发python,需要安装python开发扩展: 本文已经安装,我们需要找的是python安装所在目录,本文实际路径如下: 如果在本文路径中没有此目录,请尝试在C盘中搜索 python,搜索到相关python目录后,点击Python 3.9进入目录,

AndroidStudio打包处理

AndroidStudio非常强大,公司最近有一个需求是要实现对一个APP进行多个版本的打包,而且可以同时安装在手机上。这个需求详细一点的描述是:公司有一个APP,有多个开发商要使用我们的APP,为了大家都想有一个自己的APP,而且图标不一样,app名字不一样,背景不一样等。我查询了一下资料发现,在AndroidStudio的gradle是可以配置的。在此特意写一篇文章记录分享。 配置签名 首