12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- import { defineConfig, loadEnv } from 'vite';
- import vue from '@vitejs/plugin-vue';
- import VitePluginHtmlEnv from 'vite-plugin-html-env';
- import { resolve } from 'path';
- import WindiCSS from 'vite-plugin-windicss';
- // import consola from 'consola';
- import mkcert from 'vite-plugin-mkcert';
- // import eslintPlugin from 'vite-plugin-eslint'
- // import requireTransform from 'vite-plugin-require-transform'
- import { chunkSplitPlugin } from 'vite-plugin-chunk-split';
- function pathResolve(dir: string) {
- return resolve(process.cwd(), '.', dir);
- }
- // https://vitejs.dev/config/
- export default ({ mode }) =>
- defineConfig({
- base: loadEnv(mode, process.cwd()).VITE_PUBLIC_DIR,
- plugins: [
- // eslintPlugin({
- // include: ['src/**/*.ts', 'src/**/*.vue', 'src/*.js', 'src/*.vue']
- // }),
- //@ts-ignore
- chunkSplitPlugin({
- strategy: 'default',
- customSplitting: {
- 'vue-vendor': ['vue'],
- utils: [/src\/utils/],
- },
- }),
- mkcert(),
- vue(),
- WindiCSS(),
- VitePluginHtmlEnv({
- prefix: '<{',
- suffix: '}>',
- envPrefixes: ['VITE_', 'VUE_'],
- }),
- ],
- resolve: {
- alias: [
- {
- find: /\/@\//,
- replacement: pathResolve('src') + '/',
- },
- {
- find: /\/#\//,
- replacement: pathResolve('types') + '/',
- },
- ],
- },
- server: {
- https: Number(loadEnv(mode, process.cwd()).VITE_USE_HTTPS) == 1,
- host: true,
- port: 6100,
- headers: {
- 'Cache-Control': 'no-store',
- },
- proxy: {
- '/service': {
- target: loadEnv(mode, process.cwd()).VITE_APP_APIS_URL,
- changeOrigin: true,
- },
- '/takelook': {
- target: loadEnv(mode, process.cwd()).VITE_APP_APIS_URL,
- changeOrigin: true,
- },
- },
- },
- build: {
- // minify: false,
- minify: 'terser',
- // target: 'es2015',
- // cssTarget: 'chrome86',
- outDir: 'dist',
- terserOptions: {
- compress: {
- keep_infinity: true,
- // Used to delete console in production environment
- drop_console: false,
- },
- },
- // Turning off brotliSize display can slightly reduce packaging time
- // brotliSize: false,
- chunkSizeWarningLimit: 2000,
- },
- });
|