70 lines
1.6 KiB
TypeScript
70 lines
1.6 KiB
TypeScript
import path from 'node:path';
|
||
|
||
import vue from '@vitejs/plugin-vue';
|
||
import vueJsx from '@vitejs/plugin-vue-jsx';
|
||
import { AntDesignVueResolver } from 'unplugin-vue-components/resolvers';
|
||
import Components from 'unplugin-vue-components/vite';
|
||
import { defineConfig, loadEnv } from 'vite';
|
||
import mkcert from 'vite-plugin-mkcert';
|
||
import qiankun from 'vite-plugin-qiankun';
|
||
|
||
export default defineConfig(({ mode }) => {
|
||
const env = loadEnv(mode, process.cwd(), ['VITE_']);
|
||
const isDev = env.VITE_NODE_ENV === 'development';
|
||
|
||
return {
|
||
plugins: [
|
||
vue(),
|
||
vueJsx(),
|
||
isDev && mkcert(),
|
||
qiankun('y-code-app', {
|
||
useDevMode: isDev,
|
||
}),
|
||
Components({
|
||
resolvers: [
|
||
AntDesignVueResolver({
|
||
importStyle: 'less',
|
||
}),
|
||
],
|
||
}),
|
||
],
|
||
|
||
server: isDev
|
||
? {
|
||
cors: true,
|
||
port: Number(env.VITE_PORT),
|
||
https: isDev, // 启用 https,配合 mkcert 插件
|
||
}
|
||
: undefined,
|
||
|
||
resolve: {
|
||
alias: {
|
||
'@': path.resolve(__dirname, './src'),
|
||
},
|
||
},
|
||
|
||
css: {
|
||
preprocessorOptions: {
|
||
less: {
|
||
javascriptEnabled: true, // 启用 Less 的 JavaScript 功能,通常用于 Ant Design
|
||
},
|
||
},
|
||
},
|
||
|
||
// 启用顶级 await 支持
|
||
esbuild: {
|
||
target: 'esnext',
|
||
supported: {
|
||
'top-level-await': true,
|
||
},
|
||
},
|
||
|
||
// 确保构建输出支持顶级 await
|
||
build: {
|
||
target: 'esnext',
|
||
// outDir: path.resolve(process.cwd(), "../../dist/y-code-v1"),
|
||
// emptyOutDir: true,
|
||
},
|
||
};
|
||
});
|