UNPKG

@uozi-admin/shared-config

Version:

Easy to configure your admin apps

236 lines (224 loc) 7.81 kB
"use strict"; var __create = Object.create; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __getProtoOf = Object.getPrototypeOf; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( // If the importer is in node compatibility mode or this is not an ESM // file that has been converted to a CommonJS file using a Babel- // compatible transform (i.e. "__esModule" has not been set), then set // "default" to the CommonJS "module.exports" for node compatibility. isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod )); var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); // src/index.ts var index_exports = {}; __export(index_exports, { createViteConfig: () => createViteConfig, mergeConfigs: () => mergeConfigs2 }); module.exports = __toCommonJS(index_exports); // src/vite/index.ts var import_node_process = __toESM(require("process"), 1); var import_vite5 = require("vite"); // src/vite/config.ts var import_node_path = require("path"); var import_vite4 = require("vite"); // src/vite/plugins/index.ts var import_plugin_vue = __toESM(require("@vitejs/plugin-vue"), 1); var import_plugin_vue_jsx = __toESM(require("@vitejs/plugin-vue-jsx"), 1); // src/vite/plugins/devTools.ts var import_vite_plugin_vue_devtools = __toESM(require("vite-plugin-vue-devtools"), 1); function createVueDevToolsPluginConfig(customConfig) { return (0, import_vite_plugin_vue_devtools.default)(customConfig); } // src/vite/plugins/unocss.ts var import_unocss = require("unocss"); var import_vite = __toESM(require("unocss/vite"), 1); var defaultConfig = { mode: "global", content: { pipeline: { include: ["**/*.{ts,jsx,tsx,vue}"], exclude: ["node_modules", ".git", "dist"] } }, presets: [ (0, import_unocss.presetWind3)({ dark: "class" }), (0, import_unocss.presetAttributify)(), (0, import_unocss.presetIcons)({ scale: 1.2, warn: true }) ], shortcuts: { // position "common-bg": "bg-truegray-100 dark:bg-truegray-900", "bg-base": "bg-white dark:bg-[#141414]", "text-color-base": "text-black dark:text-white", "pr": "relative", "pa": "absolute", "pf": "fixed", "ps": "sticky", // position layout "position-x-center": "absolute left-1/2 -translate-x-1/2", "pxc": "position-x-center", "position-y-center": "absolute top-1/2 -translate-y-1/2", "pyc": "position-y-center", "position-center": "position-x-center position-y-center", "pc": "position-center", // size "size-0": "w-0 h-0", "size-full": "w-full h-full", "size-screen": "w-screen h-screen", "size-1/2": "w-1/2 h-1/2", // flex layout "flex-center": "flex justify-center items-center", "flex-col-center": "flex-center flex-col", "flex-x-center": "flex justify-center", "flex-y-center": "flex items-center" }, theme: {}, transformers: [ (0, import_unocss.transformerDirectives)(), (0, import_unocss.transformerVariantGroup)() ] }; function createUnoCSSPluginConfig(customConfig = {}) { return (0, import_vite.default)((0, import_unocss.mergeConfigs)([defaultConfig, customConfig])); } // src/vite/plugins/unpluginAutoImport.ts var import_vite2 = __toESM(require("unplugin-auto-import/vite"), 1); function createAutoImportPluginConfig(customConfig) { return (0, import_vite2.default)({ imports: [ "vue", "vue-router", "pinia" ], ignoreDts: [ /^ignore_/ ], vueTemplate: true, eslintrc: { enabled: true, // provide path ending with `.mjs` or `.cjs` to generate the file with the respective format filepath: "./.eslint-auto-import.mjs" }, ...customConfig }); } // src/vite/plugins/unpluginVueComponents.ts var import_resolvers = require("unplugin-vue-components/resolvers"); var import_vite3 = __toESM(require("unplugin-vue-components/vite"), 1); function createVueComponentsPluginConfig(customConfig) { return (0, import_vite3.default)({ extensions: ["vue"], include: [/\.vue$/, /\.vue\?vue/], dts: "components.d.ts", exclude: [/[\\/]node_modules[\\/]/, /[\\/]\.git[\\/]/, /[\\/]\.nuxt[\\/]/], resolvers: [ (0, import_resolvers.AntDesignVueResolver)({ importStyle: false, resolveIcons: true }) ], ...customConfig }); } // src/vite/plugins/index.ts function configVitePlugins(pluginOptions = {}) { const vitePlugins = []; vitePlugins.push((0, import_plugin_vue.default)({ script: { defineModel: true }, ...pluginOptions.vue })); pluginOptions.vueJsx !== false && vitePlugins.push((0, import_plugin_vue_jsx.default)(pluginOptions.vueJsx)); pluginOptions.autoImport !== false && vitePlugins.push(createAutoImportPluginConfig(pluginOptions.autoImport)); pluginOptions.vueComponents !== false && vitePlugins.push(createVueComponentsPluginConfig(pluginOptions.vueComponents)); pluginOptions.unocss !== false && vitePlugins.push(createUnoCSSPluginConfig(pluginOptions.unocss)); pluginOptions.devTools !== false && vitePlugins.push(createVueDevToolsPluginConfig(pluginOptions.devTools)); return vitePlugins; } // src/vite/config.ts async function createApplicationViteConfig(mode, root, pluginsOptions) { const env = (0, import_vite4.loadEnv)(mode, root, ""); const plugins = configVitePlugins(pluginsOptions); const applicationConfig = { resolve: { alias: { "~": (0, import_node_path.resolve)(root, "src") }, extensions: [ ".mjs", ".js", ".ts", ".jsx", ".tsx", ".json", ".vue", ".less" ] }, css: { preprocessorOptions: { less: { modifyVars: { "border-radius-base": "5px" }, javascriptEnabled: true } } }, server: { proxy: { "/api": { target: env.VITE_PROXY_TARGET || "http://localhost:9000", changeOrigin: true, secure: false, ws: true, rewrite: (path) => path.replace(env.VITE_API_ROOT || "/api", "") } } }, build: { chunkSizeWarningLimit: 5e3 }, plugins }; return applicationConfig; } // src/vite/index.ts function mergeConfigs2(configs) { return configs.reduce((mergedConfig, config) => { return (0, import_vite5.mergeConfig)(mergedConfig, config); }, {}); } async function createViteConfig(applicationViteConfigOptions = {}) { const { overrides = {}, pluginOptions = {} } = applicationViteConfigOptions; const root = import_node_process.default.cwd(); return (0, import_vite5.defineConfig)(async (env) => { if (typeof overrides === "function") return mergeConfigs2([await createApplicationViteConfig(env.mode, root, pluginOptions), await overrides(env)]); return mergeConfigs2([await createApplicationViteConfig(env.mode, root, pluginOptions), overrides]); }); } // Annotate the CommonJS export names for ESM import in node: 0 && (module.exports = { createViteConfig, mergeConfigs });