flaunt-web/vite.config.js

62 lines
1.5 KiB
JavaScript

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import { resolve } from 'path'
import { batiaoPlugin } from '@batiao/batiao-sdk-vue-vite/onBuild'
import proxy from './src/proxy.cjs'
import fs from 'fs'
const copyPublicPlugin = () => {
return {
name: 'copy-src-public',
closeBundle() {
const srcDir = resolve(__dirname, 'src/public')
const destDir = resolve(__dirname, 'dist/src/public')
try {
if (fs.existsSync(srcDir)) {
fs.mkdirSync(destDir, { recursive: true })
fs.cpSync(srcDir, destDir, { recursive: true })
console.log('[copy-src-public] 成功将 src/public 复制到 dist/src/public')
}
} catch (err) {
console.error('[copy-src-public] 复制失败:', err)
}
}
}
}
export default defineConfig({
plugins: [vue(), batiaoPlugin(), copyPublicPlugin()],
css: {
preprocessorOptions: {
scss: {
api: 'modern-compiler'
}
}
},
resolve: {
alias: {
'@': resolve(__dirname, 'src')
}
},
build: {
chunkSizeWarningLimit: 2000,
rollupOptions: {
output: {
entryFileNames: 'assets/[name].js',
chunkFileNames: 'assets/[name].js',
assetFileNames: 'assets/[name].[ext]'
},
onwarn(warning, warn) {
if (warning.code === 'UNRESOLVED_IMPORT' || warning.code === 'UNUSED_EXTERNAL_IMPORT') return;
warn(warning);
}
}
},
server: {
//通过电脑ip访问设置
host: '0.0.0.0',
port: 3000,
proxy
}
})