62 lines
1.5 KiB
JavaScript
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
|
|
}
|
|
})
|