vite.config.ts

1 篇文章 0 订阅
import react from '@vitejs/plugin-react'
import { defineConfig } from "vite" 
 
const fs = require("fs")
const path = require("path")
 
// Dotenv 是一个零依赖的模块,它能将环境变量中的变量从 .env 文件加载到 process.env 
const dotenv = require("dotenv")
 
const envFiles = [
  /** default file */ `.env`,
  /** mode file */ `.env.${process.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]
  }
}
 
export default defineConfig({
  define: {
    'process.env': process.env
  },
  // 开发或生产环境服务的公共基础路径
  base: './',
  // 作为静态资源服务的文件夹
  publicDir: 'assets',
  plugins: [react ()],
  resolve: {
    // 文件系统路径的别名
    alias: {
      '@': path.resolve(__dirname, 'src'),
      'vue': 'vue/dist/vue.esm-bundler.js',
      'vue-i18n': 'vue-i18n/dist/vue-i18n.cjs.js'
    }
  },
  css: {
    preprocessorOptions: {
      scss: {
        additionalData: '@import "./src/assets/style/index.scss";'
      }
    }
  },
  build: {
    // 压缩
    minify: process.env.VITE_NODE_ENV === 'production' ? 'esbuild' : false,
    // 服务端渲染
    ssr: false,
    outDir: 'dist',
    chunkSizeWarningLimit: 2000,
    emptyOutDir: true,
    rollupOptions: {
      output: {
        manualChunks(id) {
          if (id.includes('node_modules')) {
            return id.toString().split('node_modules/')[1].split('/')[0].toString()
          }
        }
      }
    }
  },
  server: {
    host: process.env.VITE_HOST,
    port: process.env.VITE_PORT,
    // 是否自动在浏览器打开
    open: false,
    hmr: true,
    proxy: {
      '/api': {
        target: "http://127.0.0.1:99999",
        changeOrigin: true
      }
    }
  }
})
 

.env

 
# loaded in all cases
// 报错时在host 配置一下
VITE_HOST = '0.0.0.0' 
VITE_PORT = 8080
VITE_BASE_URL = './'
VITE_OUTPUT_DIR = 'dist'
 

.env.development

# 开发环境
VITE_NODE_ENV = 'development'
VITE_API_DOMAIN = '/api'
 

.env.production
# 生产环境
VITE_NODE_ENV = 'production'
VITE_API_DOMAIN = 'production.xxx.xxx'
 

package.json
"scripts": {
  "dev": "vite",
  "build-dev":  "vite build --mode development",
  "build-prd": "vite build --mode production",
  "lint": "lint-staged ."
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值