| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- import { defineConfig, loadEnv } from 'vite'
- import vue from '@vitejs/plugin-vue'
- import { resolve } from 'path'
- import { OUTPUT_DIR, brotliSize, chunkSizeWarningLimit, terserOptions, rollupOptions } from './build/constant'
- import viteCompression from 'vite-plugin-compression'
- import { viteMockServe} from "vite-plugin-mock";
- import { axiosPre } from './src/settings/httpSetting'
- function pathResolve(dir: string) {
- return resolve(process.cwd(), '.', dir)
- }
- export default ({ mode }) => defineConfig({
- base: process.env.NODE_ENV === 'production' ? './' : '/',
- // 路径重定向
- resolve: {
- alias: [
- {
- find: /\/#\//,
- replacement: pathResolve('types') + '/'
- },
- {
- find: '@',
- replacement: pathResolve('src') + '/'
- }
- ],
- dedupe: ['vue']
- },
- // 全局 css 注册
- css: {
- preprocessorOptions: {
- scss: {
- javascriptEnabled: true,
- additionalData: `@import "src/styles/common/style.scss";`
- }
- }
- },
- // 开发服务器配置
- server: {
- host: true,
- open: true,
- port: 3000,
- proxy: {
- [axiosPre]: {
- // @ts-ignore
- target: loadEnv(mode, process.cwd()).VITE_DEV_PATH,
- changeOrigin: true,
- ws: true,
- secure: true,
- }
- }
- },
- plugins: [
- vue(),
- viteMockServe({
- mockPath: "/src/api/mock",
- // 开发打包开关
- localEnabled: true,
- // 生产打包开关
- prodEnabled: true,
- // 打开后,可以读取 ts 文件模块。 请注意,打开后将无法监视.js 文件
- supportTs: true,
- // 监视文件更改
- watchFiles: true,
- }),
- // 压缩
- viteCompression({
- verbose: true,
- disable: false,
- threshold: 10240,
- algorithm: 'gzip',
- ext: '.gz'
- })
- ],
- build: {
- target: 'es2015',
- outDir: OUTPUT_DIR,
- terserOptions: terserOptions,
- rollupOptions: rollupOptions,
- brotliSize: brotliSize,
- chunkSizeWarningLimit: chunkSizeWarningLimit
- }
- })
|