import { defineConfig } from "vite";
import { resolve } from "path";
import { terser } from "rollup-plugin-terser";
import vue from "@vitejs/plugin-vue";
import AutoImport from "unplugin-auto-import/vite";
import Components from "unplugin-vue-components/vite";
import lessToJS from "less-vars-to-js";
import fs from "fs";
const themeLessPath = resolve(__dirname, "./src/theme/index.less");
const modifyVars = lessToJS(fs.readFileSync(themeLessPath, "utf8"));
export default defineConfig({
base: "/",
define: {
"process.env": {
NODE_ENV: JSON.stringify(process.env.NODE_ENV || "development"),
},
},
server: {
host: true,
port: 9857,
https: false,
hmr: true,
},
build: {
outDir: "build",
assetsDir: "static",
sourcemap: false,
assetsInlineLimit: 4096,
chunkSizeWarningLimit: 500,
minify: "esbuild",
rollupOptions: {
plugins: [
terser({
compress: {
drop_console: true,
},
}),
],
},
},
css: {
preprocessorOptions: {
less: {
modifyVars,
javascriptEnabled: true,
},
},
},
resolve: {
alias: {
"@": resolve("src/"),
},
extensions: [".mjs", ".js", ".ts", ".jsx", ".tsx", ".json", ".vue"],
},
plugins: [
vue(),
AutoImport({
imports: ["vue"],
eslintrc: {
enabled: false,
},
}),
Components({
dirs: ["src/components"],
}),
],
optimizeDeps: {
force: true,
},
});