Guoguo-notes
主页
常用笔记
vue笔记及周边生态
  • 团队协作及规范
  • 项目框架及架构
  • 飞码篇
  • Java
  • React笔记
GitHub
主页
常用笔记
vue笔记及周边生态
  • 团队协作及规范
  • 项目框架及架构
  • 飞码篇
  • Java
  • React笔记
GitHub
  • vue笔记及周边生态

    • 1. Element Plus --vue3.0.md
    • 2. Element ui 笔记.md
    • 3. Taro.md
    • 4. Vue 代码片段.md
    • 5. Vue 全局封装 main.js.md
    • 6. Vue 笔记.md
    • 7. Vue3 .md
    • 8. Vue3+Element Plus.md
    • 9. element plus 本地启动.md
    • 10. jsx tsx 代码片段.md
    • 11. jsx tsx 笔记.md
    • 12. uniapp笔记.md
    • 13. vite 笔记.md
    • 14. vite手写插件.md
    • 15. vue.js 下载文件.md
    • 16. vueuse笔记.md
    • 17. vxe-table笔记.md
    • 18. 代码片段 - 解析数学公式.md
    • 19. 常用插件.md
    • 20. 汇智腾远笔记.md
    • 21. 视频播放插件.md

开启 CSS 路径追踪

devSourcemap: true,

import { defineConfig } from "vite";

export default defineConfig({
    optimizeDeps: {
        exclude: [] // 将指定数组中的依赖不进行依赖预构建
    },
    envPrefix: "VITE_",  // 配置环境变量前缀
    css: {
        devSourcemap: true,  // 开启 CSS source map 追踪 就是在页面上的
    }
});

vite.Base.config.ts 配置

import { defineConfig } from "vite";
import viteCompression from 'vite-plugin-compression'

export default defineConfig({

    optimizeDeps: {
        exclude: [] // 将指定数组中的依赖不进行依赖预构建
    },
    envPrefix: "VITE_",  // 配置环境变量前缀
    resolve: {
        alias: {
            "@": "/src",
            "@assets": "/src/assets",
        }
    },
   plugins: [
        vue(),
        viteCompression()   // 压缩插件
    ],
    build: {  // 配置打包配置
        rollupOptions: {  // rollup 配置
            output: {
                assetFileNames: "[name].[ext].[hash]",  // 输出的文件名  名称.扩展名.hash值
                // 分包策略  会再打包时 将node_modules 打包为 vendor 文件
                manualChunks: (id) => {
                    console.log('id ===>', id);
                    if (id.includes('node_modules')) {
                        return 'vendor';
                    }
                }
            }
        },
        assetsInlineLimit: 4096000, // 4000kb
        outDir: 'dist', // 输出目录
        assetsDir: 'static',
        minify: false, // 打包后不乱码
    }
});

vite.config.ts 配置

import { defineConfig, loadEnv } from 'vite';
import vue from '@vitejs/plugin-vue';

import viteBaseConfig from './vite.base.config.ts'
import viteDevConfig from './vite.dev.config.ts'
import viteTestConfig from './vite.dev.config.ts'
import viteProdConfig from './vite.prod.config.ts'

const envResolver: any = {
  "serve": () => {
    console.log("本地环境");
    return { ...viteBaseConfig, ...viteDevConfig }
  },
  "test": () => {
    console.log("测试环境");
    return { ...viteBaseConfig, ...viteTestConfig }
  },
  "build": () => {
    console.log("生产环境");
    return { ...viteBaseConfig, ...viteProdConfig }
  },
}


export default defineConfig(({ command, mode }) => {
  console.log('command,mode ===>', command, mode);
  // 加载环境变量,确保环境变量文件路径正确
  const env = loadEnv(mode, `${process.cwd()}/config/env`, 'VITE_');      // 这个地方控制的是 env 中的变量
  console.log('env.VITE_APP_KEY ===>', env.VITE_APP_KEY);

  // 指定新的 env 目录路径
  const envDir = './config/env';

  return {
    envDir,           // 指定新的 env 目录路径  这个地方控制的是 import.meta.env 中的变量
    plugins: [vue()],
    ...envResolver[command]()  
  };
});

编写插件已学配置

image-20241124094133403

vite 打包 [gzip压缩] vite-plugin-compression

import viteCompression from 'vite-plugin-compression'


plugins: [
    viteCompression()
],

vite CDN 加速

image-20241124164217011

Edit this page
Last Updated:
Contributors: 袁果锅
Prev
12. uniapp笔记.md
Next
14. vite手写插件.md