@uozi-admin/shared-config
Version:
Easy to configure your admin apps
236 lines (224 loc) • 7.81 kB
JavaScript
;
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
});