| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- import { defineConfig } from 'vite'
- import vue from '@vitejs/plugin-vue'
- import { resolve } from 'path'
- import pkg from './package.json'
- const websiteDownloadVersion = process.env.WEBSITE_DOWNLOAD_VERSION?.trim() || pkg.version
- export default defineConfig({
- root: 'packages/website',
- plugins: [vue()],
- define: {
- __APP_VERSION__: JSON.stringify(pkg.version),
- __WEBSITE_DOWNLOAD_VERSION__: JSON.stringify(websiteDownloadVersion),
- },
- resolve: {
- alias: {
- '@': resolve(__dirname, 'packages/website/src'),
- '@client': resolve(__dirname, 'packages/client/src'),
- },
- },
- css: {
- preprocessorOptions: {
- scss: {
- additionalData: `@use "@/styles/variables" as *;\n`,
- },
- },
- },
- build: {
- outDir: '../../dist/website',
- emptyOutDir: true,
- minify: 'esbuild',
- sourcemap: false,
- target: 'es2020',
- cssCodeSplit: true,
- rollupOptions: {
- output: {
- manualChunks(id) {
- if (id.includes('node_modules')) {
- if (id.includes('vue') || id.includes('vue-router') || id.includes('vue-i18n') || id.includes('pinia')) {
- return 'vue-vendor'
- }
- if (id.includes('naive-ui')) {
- return 'ui-vendor'
- }
- return 'vendor'
- }
- },
- chunkFileNames: 'assets/js/[name]-[hash].js',
- entryFileNames: 'assets/js/[name]-[hash].js',
- assetFileNames: 'assets/[ext]/[name]-[hash].[ext]',
- },
- },
- },
- server: {
- port: 3000,
- },
- })
|