一文读懂vite.config.ts常用配置项

本文详细解释了Vite项目中的vite.config.ts配置文件,涉及开发环境、基础路径、构建设置、服务器配置、模块解析、插件、全局变量、CSS处理和esbuild选项等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

vite.config.ts 是 Vite 项目中用来配置构建选项和插件的配置文件。

defineConfig 函数是在 Vite 中用于创建配置对象的常见方法,它通常用于定义开发环境和生产环境的配置选项。以下是一些常用的配置项:

  • base:用于指定项目的基础路径,通常用于将项目部署到子路径的情况。

  • build:包含了构建相关的配置选项,比如输出路径、是否开启压缩、是否开启代码分割等。

  • server:用于配置开发服务器,包括主机地址、端口号、代理设置等。

  • resolve:用于配置模块解析规则,包括路径别名、模块文件后缀名的解析顺序等。

  • plugins:用于配置 Vite 插件,可以对代码进行转换、引入第三方库等。

  • define:用于定义全局变量,比如不同环境下的接口地址、应用名称等。

  • css:用于配置 CSS 相关的选项,比如预处理器、样式模块化等。

  • sbuild:用于配置 esbuild 相关的选项,比如自定义 JSX 配置、代码压缩优化等。

//导出一个默认的配置对象,其中包括了 Vite 的各种配置选项。
export default defineConfig({
    root, //项目根目录(index.html 文件所在的位置) 默认: process.cwd()
    base: '/', //  开发或生产环境服务的公共基础路径:默认'/'   1、绝对 URL 路径名: /foo/;  2、完整的 URL: https://foo.com/; 3、空字符串或 ./(用于开发环境)
    publicDir: resolve(__dirname, './dist'), //默认'public'  作为静态资源服务的文件夹  (打包public文件夹会没有,里面得东西会直接编译在dist文件下)
    assetsInclude: resolve(__dirname, './src/assets'), // 静态资源处理
    
    /*****配置项目的构建过程******/
    build: {
        outDir: 'dist', // 构建输出目录
        minify: true, // 是否压缩代码
        sourcemap: true, // 是否生成 source map
    },
    
    /*****定义全局变量******/
    define: {
        MENU_PATH: `"path"`,
        MENU_SHOW: `"isShowOnMenu"`,
        MENU_KEEPALIVE: `"keepAlive"`,
        MENU_KEY: `"key"`,
        MENU_ICON: `"icon"`,
        MENU_TITLE: `"title"`,
        MENU_CHILDREN: `"children"`,
        MENU_PARENTKEY: `"parentKey"`,
        MENU_ALLPATH: `"allPath"`,
        MENU_PARENTPATH: `"parentPath"`,
        MENU_LAYOUT: `'layout'`,
        __IS_THEME__: `${process.env.REACT_APP_COLOR === "1"}`,
        CUSTOMVARLESSDATA: `${JSON.stringify(customVarLessJson)}`
    },
    
    /******配置插件******/
    plugins: [
        ReactRouterGenerator({
          outputFile: resolve(".", "./src/router/auto.jsx"),
          isLazy: true,
          comKey: "components"
        }),
       react(),
    ],
    

    /******配置模块解析的规则******/
    resolve: {
      //路径使用别名
      alias: {
        '@': fileURLToPath(new URL('./src', import.meta.url)),
      },
      //引入文件的后缀名称,可以省略。如果出现同名,按照数组加载的优先顺序
      extensions: ['.mjs', '.js', '.ts', '.jsx', '.tsx', '.json', '.vue'],
    },
    
    /******配置开发服务器******/
    server: {
      port: 3333,// 端口号
      open: true,// 启动时自动在浏览器打开
      https: true,// 是否开启 https
      host: true, // 监听所有地址
      cors: false, //为开发服务器配置 CORS
      fs: {
        // 可以为项目根目录的上一级提供服务
        allow: [".."],
      },
      //配置自定义代理规则
      proxy: {
          '^/api': {
                target: "https://z3web.cn",
                changeOrigin: true,
                rewrite: (path) => {
                return path.replace("/api", "/api/react-ant-admin")
            }
       },
    },
    
    /*****配置CSS相关的选项********/
    css: {
      //配置了对 SCSS 的处理选项
      preprocessorOptions: {
        scss: {
          //引入了全局的 SCSS 文件 global.scss
          additionalData: `@import "./src/assets/css/global.scss";`,
        },
      },
      // 可以查看 CSS 的源码
      devSourcemap: true
    },
    
    /****配置 esbuild 相关的选项******/
    esbuild: {
      // 自定义 JSX 配置
      jsxFactory: 'h', //自定义的 JSX 工厂函数为 h,这在一些非 React 框架中可能会用到。
      jsxFragment: 'Fragment', //指定了 JSX 的 Fragment 为 Fragment
      jsxInject: `import React from 'react'` //是否开启 JSX 转换
    }
})

### 关于 `vite.config.ts` 打包配置 #### 配置概述 `vite.config.ts` 是 Vite 项目的核心配置文件,它允许定制开发服务器、构建过程、插件以及路径解析等方面的行为。通过正确配置此文件,可以调整构建设置并优化开发体验和生产环境的性能[^1]。 #### 基本打包配置示例 下面是一个基本的 `vite.config.ts` 文件示例,展示了如何进行打包配置: ```typescript import { defineConfig } from 'vite'; import vue from '@vitejs/plugin-vue'; export default defineConfig({ build: { rollupOptions: { input: './src/main.js', output: { dir: 'dist', // 输出目录 format: 'esm' // 输出格式 (ESM, IIFE, UMD) } }, assetsDir: 'assets', // 资源文件夹名称 sourcemap: true, // 是否生成 source map 文件 minify: 'terser', // 使用 Terser 进行压缩,默认为 esbuild terserOptions: { compress: { drop_console: true, // 移除 console.log() }, }, }, }); ``` #### 自定义变量定义 为了更好地管理全局常量或环境变量,可以在 `vite.config.ts` 中使用 `define` 来定义这些值。需要注意的是字符串类型的值应该用 `JSON.stringify()` 处理以便能够在模板中正常使用[^3]。 ```typescript export default defineConfig({ define: { 'process.env': { BASE_URL: JSON.stringify('https://api.example.com'), APP_NAME: JSON.stringify('My App') } } }) ``` #### 插件集成 Vite 支持多种插件来扩展其功能。例如,可以通过引入 Vue 插件支持 `.vue` 单文件组件;还可以添加其他第三方库作为插件以增强项目的灵活性和功能性[^2]。 ```typescript import vue from '@vitejs/plugin-vue'; // 导入 Vue 插件 export default defineConfig({ plugins: [ vue(), // 应用 Vue 插件 // 可在此处继续添加更多插件... ] }); ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

rinba_murphy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值