123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- import vue from "@vitejs/plugin-vue"; //提供 Vue 3 单文件组件支持
- import OptimizationPersist from "vite-plugin-optimize-persist";
- import PkgConfig from "vite-plugin-package-config";
- import path from "path";
- import { defineConfig } from "vite";
- // import postCssPxToRem from "postcss-pxtorem";
- // https://vitejs.dev/config/
- export default defineConfig({
- plugins: [vue()],
- plugins: [vue(), PkgConfig(), OptimizationPersist()],
- // 部署生产环境和开发环境下的URL。
- // 默认情况下,vite 会假设你的应用是被部署在一个域名的根路径上,例如 https://www.ruoyi.vip/。
- // 如果应用被部署在一个子路径上,你就需要用这个选项指定这个子路径。例如,如果你的应用被部署在 https://www.ruoyi.vip/admin/,则设置 baseUrl 为 /admin/。
- // base: './',
- base: process.env.NODE_ENV === "production" ? "./" : "/sdjt/",
- resolve: {
- alias: {
- // 设置别名
- "@": path.resolve(__dirname, "./src")
- },
- //导入时想要省略的扩展名列表
- extensions: [".mjs", ".js", ".ts", ".jsx", ".tsx", ".json"]
- },
- /* 全局变量 */
- css: {
- // 指定传递给 CSS 预处理器的选项
- preprocessorOptions: {
- scss: {
- additionalData: '@use "@/assets/styles/variables.scss" as *;'
- }
- }
- // postcss: {
- // plugins: [
- // postCssPxToRem({
- // rootValue: 192, // (设计稿/10)1rem的大小
- // propList: ['*'], // 需要转换的属性,这里选择全部都进行转换
- // })
- // ]
- // }
- },
- /* 服务器配置 */
- server: {
- /* 端口 */
- port: 3000,
- /* 地址 */
- host: "0.0.0.0",
- /* 编译后是否打开浏览器 */
- open: true,
- /* 是否开启https */
- https: false,
- proxy: {
- [process.env.VUE_APP_BASE_API]: {
- target: process.env.VITE_API_URL,
- ws: true,
- changeOrigin: true,
- rewrite: {
- //重写路径,这种是没有我们定义的前缀
- ["^" + process.env.VUE_APP_BASE_API]: ""
- }
- }
- }
- },
- /* 打包配置 */
- build: {
- /**
- * 设置最终构建的浏览器兼容目标。默认值是一个 Vite 特有的值——'modules',这是指 支持原生 ES 模块的浏览器。
- */
- target: "modules",
- /**
- * 指定输出路径(相对于 项目根目录).
- * @default 'dist'
- */
- outDir: "dist",
- /**
- * 启用/禁用 CSS 代码拆分
- */
- cssCodeSplit: true,
- /**
- * 混淆器,terser构建后文件体积更小
- */
- minify: "terser", // 混淆器,terser构建后文件体积更小
- chunkSizeWarningLimit: 4500,
- rollupOptions: {
- output: {
- manualChunks(id) {
- if (id.includes("node_modules")) {
- return id.toString().split("node_modules/")[1].split("/")[0].toString();
- }
- }
- }
- }
- }
- });
|