Advertisement
dimti

Untitled

Feb 3rd, 2022
2,310
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import * as path from 'path'
  2. import { defineConfig, loadEnv } from 'vite'
  3.  
  4. import vue from '@vitejs/plugin-vue'
  5. import viteImagemin from 'vite-plugin-imagemin'
  6. // import analyze from 'rollup-plugin-analyzer'
  7.  
  8. import entrypoints from './entrypoints.json'
  9.  
  10. process.env = { ...process.env, ...loadEnv('', '../..') }
  11.  
  12. const VITE_DEV_SERVER_ADDRESS = `${process.env.VITE_DEV_SERVER_PROTOCOL}://${process.env.VITE_DEV_SERVER_HOST}:${process.env.VITE_DEV_SERVER_PORT}`
  13.  
  14. export default defineConfig({
  15.     server: {
  16.         host: process.env.VITE_DEV_SERVER_HOST,
  17.         port: process.env.VITE_DEV_SERVER_PORT ? +process.env.VITE_DEV_SERVER_PORT : 3000,
  18.         strictPort: true
  19.     },
  20.     build: {
  21.         manifest: true,
  22.         outDir: 'assets/tmp-build',
  23.         rollupOptions: {
  24.             input: entrypoints,
  25.             output: {
  26.                 manualChunks: {
  27.                     jquery: ['jquery']
  28.                 }
  29.             }
  30.             // plugins: [analyze({ limit: 20 })]
  31.         }
  32.     },
  33.     resolve: {
  34.         alias: [
  35.             { find: '@', replacement: path.resolve(__dirname, './assets/') },
  36.             { find: 'vue', replacement: 'vue/dist/vue.esm-bundler.js' },
  37.             { find: 'vue-i18n', replacement: 'vue-i18n/dist/vue-i18n.cjs.js' }
  38.         ]
  39.     },
  40.     plugins: [
  41.         vue({
  42.             template: {
  43.                 compilerOptions: {
  44.                     whitespace: 'condense'
  45.                 }
  46.             }
  47.         }),
  48.         {
  49.             name: 'static-asset-fixer',
  50.             enforce: 'post',
  51.             apply: 'serve',
  52.             transform: (code) => {
  53.                 return {
  54.                     code: code
  55.                         .replace(/\/assets\/fonts\/([a-zA-Z0-9-]+).(eot|ttf|woff|woff2)/g, `${VITE_DEV_SERVER_ADDRESS}/assets/fonts/$1.$2`)
  56.                         .replace(/\/assets\/images\/([a-zA-Z0-9-_/]+).(jpg|jpeg|png|svg)/g, `${VITE_DEV_SERVER_ADDRESS}/assets/images/$1.$2`),
  57.                     map: null
  58.                 }
  59.             }
  60.         },
  61.         viteImagemin({
  62.             gifsicle: {
  63.                 optimizationLevel: 7,
  64.                 interlaced: false
  65.             },
  66.             svgo: {
  67.                 plugins: [
  68.                     {
  69.                         name: 'removeViewBox'
  70.                     },
  71.                     {
  72.                         name: 'removeEmptyAttrs',
  73.                         active: false
  74.                     }
  75.                 ]
  76.             }
  77.         })
  78.     ]
  79. })
  80.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement