发布时间:2023-08-19 09:30
在Vue项目创建三个文件分别为.env .env.development .env.production与Vite.config.js同级别
VITE_HOST = '172.20.25.155'
VITE_PORT = 8080
VITE_BASE_URL = './'
VITE_OUTPUT_DIR = 'dist'
VITE_API_DOMAIN = 'http://10.1.1.111:8080/api/'//本地环境地址(可用于开发时联调)
NODE_ENV = development
VITE_API_DOMAIN = 'http://aaa.com:8080/api'//测试环境地址
NODE_ENV = production
VITE_API_DOMAIN = 'http://fund-wx.aisidicredit.com/wechat-api'//正式环境地址
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
const fs = require("fs")
const dotenv = require("dotenv")
const { resolve } = require('path') // 编辑器提示 path 模块找不到,可以yarn add @types/node --dev
export default ({ command, mode }) =>{
let NODE_ENV = process.env.NODE_ENV || 'development';
let envFiles = [];
//根据不同的环境使用不同的环境变量
if(command == 'serve'){
envFiles = [
/** default file */
`.env`
]
}else{
envFiles = [
/** default file */
`.env`,
/** mode file */
`.env.${NODE_ENV}`
]
}
for (const file of envFiles) {
const envConfig = dotenv.parse(fs.readFileSync(file))
for (const k in envConfig) {
process.env[k] = envConfig[k]
}
}
return defineConfig({
plugins: [vue()],
resolve: {
alias: {
'@': resolve(__dirname, 'src') // 设置 `@` 指向 `src` 目录
}
},
server: {
host: process.env.VITE_HOST,
port: process.env.VITE_PORT,
// 是否自动在浏览器打开
open: true,
// 是否开启 https
https: false,
// 服务端渲染
ssr: false,
base: process.env.VITE_BASE_URL,
outDir: process.env.VITE_OUTPUT_DIR,
proxy: {
'/api': {
target: 'http://api网关所在域名',
changeOrigin: true,
rewrite: (path) => path.replace(/^\/api/, '')
},
}
},
})
}
//可根据自己的打包命令配置命令名称
"scripts": {
"dev": "vite",
"test": "cross-env vite build --mode development",
"build": "cross-env vite build --mode production"
}