Vite - 配置 - 不同的环境执行不同的配置文件

目标描述

通过不同的命令,执行不同的环境的配置文件中的内容:

npm run dev : 执行开发环境的配置文件
npm run build: 执行生产环境的配置文件

环境文件准备

为了在不同的环境中使用不同的配置文件,我们将配置文件拆分开来。
开发环境使用开发环境的配置文件;
生产环境使用生产环境的配置文件;
有一些通用的配置,就放在 基础环境配置文件中。
这样我们通过执行不同的脚本命令,直接读取不同的配置文件即可。

项目目录结构如下:

study-vite
  | -- node_modules
  | -- index.html
  | -- main.js
  | -- package.json
  | -- vite.config.js 【vite 的配置文件】
  | -- environment  【存放不同环境配置文件的目录】
    | -- vite.base.config.js
    | -- vite.dev.config.js
    | -- vite.prod.config.js

01-基础的环境配置文件

文件名称 : vite.base.config.js

/**
 * 基础环境的配置,目前来讲还没有配置任何的内容
 */
import { defineConfig } from "vite"
console.log('load base-config...')
export default defineConfig({
   
})

02-开发环境配置文件

文件名称 : vite.dev.config.js

/**
 * 开发环境的配置,目前来讲还没有配置任何的内容
 */

import { defineConfig } from "vite"
console.log('load dev-config...')
export default defineConfig({
   
})

03-生产环境配置文件

文件名称 : vite.prod.config.js

/**
 * 生产环境的配置,目前来讲还没有配置任何的内容
 */

import { defineConfig } from "vite"
console.log('load prod-config...')
export default defineConfig({
   
})

04-vite.config.js配置文件


import { defineConfig } from "vite"

// 引入三个环境配置文件
import ViteBaseConfig from "./environment/vite.base.config"
import ViteProdConfig from "./environment/vite.prod.config"
import ViteDevConfig from "./environment/vite.dev.config"

// 策略模式做一个动态的配置
const envResolver = {
    "build":()=>{
        console.log("生产环境")
        // 解构的语法
        return ({...ViteBaseConfig,...ViteProdConfig})
    },
    "serve":()=>{
        console.log("开发环境")
        // 另一种写法
        return Object.assign({},ViteBaseConfig,ViteDevConfig)
    }
}

// 根据 参数 command 的值,使用不同的环境配置文件
export default defineConfig(({command})=>{
    console.log("command : ",command)
    // 根据不同的环境使用不同的配置文件,注意这个地方的写法,非常的奇特
    return envResolver[command]()
})

05-package.json脚本配置

配置一个 开发环境的脚本
配置一个生产环境的脚本

  "scripts": {
    "dev": "vite",
    "prod": "vite build"
  },

运行测试

运行开发环境

npm run dev
Vite - 配置 - 不同的环境执行不同的配置文件_第1张图片

运行生产环境

npm run prod
Vite - 配置 - 不同的环境执行不同的配置文件_第2张图片

注意,此处运行的生产环境的命令是【执行打包的】
但是,本文只是为了探索配置文件的加载,对打包的操作暂不详细描述。

你可能感兴趣的:(Vite,Vite,环境配置,不同的环境使用不同的配置文件)