Closed JACK-ZHANG-coming closed 11 months ago
本地运行后没问题,打包后样式丢失。
关键代码如下:
<template> <el-button class="j-button" v-bind="$attrs" @click="handleClick"> <slot /> </el-button> </template> <script setup lang="ts" name="JButton"> import { ref } from 'vue' const props = defineProps({ time: { type: Number, default: 1000, }, }) // 抛出事件 const emits = defineEmits(['click']) const record = ref(0) const handleClick = () => { let newTime = new Date() if (newTime.getTime() - record.value > props.time) { emits('click') } record.value = new Date().getTime() } </script> <style lang="scss"> .j-button { border: 2px solid red; } </style>
其实就是多增加了个内置样式:
.j-button { border: 2px solid red; }
本地运行效果(正常):
打包以后在别的项目引入效果(样式丢失,没有红色边框):
vite.config.ts配置如下:
import { defineConfig } from 'vite' import vue from '@vitejs/plugin-vue' import vueJsx from '@vitejs/plugin-vue-jsx' import { resolve } from 'path' import vueSetupExtend from 'vite-plugin-vue-setup-extend' // 设置neme属性 // import AutoImport from 'unplugin-auto-import/vite' // 自动导入 import viteCompression from 'vite-plugin-compression' // 静态资源压缩 // import {visualizer} from 'rollup-plugin-visualizer' // 打包后的视图文件 import dts from 'vite-plugin-dts' // https://vitejs.dev/config/ export default defineConfig({ plugins: [ vue(), // dts(), vueJsx(), vueSetupExtend(), viteCompression({ verbose: true, disable: false, // 不禁用压缩 deleteOriginFile: false, // 压缩后是否删除原文件 threshold: 10240, // 压缩前最小文件大小 algorithm: 'gzip', // 压缩算法 ext: '.gz', // 文件类型 }), // visualizer({ // open:true, //注意这里要设置为true,否则无效 // gzipSize:true, // brotliSize:true // }) ], server: { host: '0.0.0.0', port: 3300, open: true, https: false, proxy: { '^/mes': { target: `http://10.0.10.243:5000/mesv2/`, changeOrigin: true, rewrite: (p) => p.replace(/^\/mes/, ''), }, '^/portal-user': { target: `http://10.0.10.240:8172`, changeOrigin: true, rewrite: (p) => p.replace(/^\/portal-user/, '/portal-user'), }, '^/portal-sso': { target: `http://10.0.10.240:8171`, changeOrigin: true, rewrite: (p) => p.replace(/^\/portal-sso/, '/portal-sso'), }, }, }, resolve: { // 配置别名 alias: { // '@': resolve(__dirname, 'examples'), '@': resolve(__dirname, 'packages'), }, // 类型: string[] 导入时想要省略的扩展名列表。 extensions: ['.js', '.ts', '.jsx', '.tsx', '.json', '.vue', '.mjs'], }, build: { outDir: 'lib', // cssCodeSplit: true, // 强制内联CSS rollupOptions: { // 请确保外部化那些你的库中不需要的依赖 external: ['vue'], output: { // 在 UMD 构建模式下为这些外部化的依赖提供一个全局变量 globals: { vue: 'Vue', }, }, }, lib: { // entry: resolve(__dirname, 'packages/index.ts'), entry: './packages/index.ts', name: 'Jrj-UI', // formats: ['es', 'cjs'], // formats: ['es', 'umd', 'cjs'], fileName: 'Jrj-UI', }, }, })
第一、你打包后,找到打包生成的css文件,搜一下你写的样式有没有丢失; 第二:你引入的组件有没有引入css
打包文件是有这个这个css的 但是,我的打包文件接口好像和da大佬您的不太一样啊,我改怎么看有没有引入css呢
可以了! 是因为我没有引入全局样式的原因。。 像下面这样写就可以了,感谢大佬!
本地运行后没问题,打包后样式丢失。
关键代码如下:
其实就是多增加了个内置样式:
本地运行效果(正常):
打包以后在别的项目引入效果(样式丢失,没有红色边框):
vite.config.ts配置如下: