Fetch the repository succeeded.
import { ConfigEnv, defineConfig, loadEnv } from "vite";
import vue from "@vitejs/plugin-vue";
import tailwind from "tailwindcss";
import autoprefixer from "autoprefixer";
import path, { resolve, dirname } from "path";
import { fileURLToPath } from "url";
import VueI18nPlugin from "@intlify/unplugin-vue-i18n/vite";
import Components from "unplugin-vue-components/vite";
import Icons from "unplugin-icons/vite";
import IconsResolver from "unplugin-icons/resolver";
import { FileSystemIconLoader } from "unplugin-icons/loaders";
import { createSvgIconsPlugin } from "vite-plugin-svg-icons";
import { getSrcPath } from "./src/utils";
// https://vitejs.dev/config/
export default ({ command, mode }: ConfigEnv) => {
const root = process.cwd();
const env = loadEnv(mode, root);
const VITE_ICON_PREFIX = "icon";
const VITE_ICON_LOCAL_PREFIX = "icon-local";
const srcPath = getSrcPath();
const localIconPath = `${srcPath}/assets/svg-icon`;
/** 本地svg图标集合名称 */
const collectionName = VITE_ICON_LOCAL_PREFIX.replace(
`${VITE_ICON_PREFIX}-`,
""
);
console.log(`build mode: ${mode}`, env);
return defineConfig({
root,
base: "/",
publicDir: "public",
css: {
postcss: {
plugins: [tailwind(), autoprefixer()],
},
},
plugins: [
vue(),
VueI18nPlugin({
include: resolve(
dirname(fileURLToPath(import.meta.url)),
"./src/locales/**"
),
fullInstall: false,
compositionOnly: true,
}),
Icons({
compiler: "vue3",
customCollections: {
[collectionName]: FileSystemIconLoader(localIconPath, (svg) =>
svg.replace(/^<svg\s/, '<svg width="1em" height="1em" ')
),
},
scale: 1,
defaultClass: "inline-block",
}),
Components({
dts: "src/typings/components.d.ts",
types: [{ from: "vue-router", names: ["RouterLink", "RouterView"] }],
resolvers: [
IconsResolver({
customCollections: [collectionName],
componentPrefix: VITE_ICON_PREFIX,
}),
],
}),
createSvgIconsPlugin({
iconDirs: [localIconPath],
symbolId: `${VITE_ICON_LOCAL_PREFIX}-[dir]-[name]`,
inject: "body-last",
customDomId: "__SVG_ICON_LOCAL__",
}),
],
resolve: {
alias: {
"@": path.resolve(__dirname, "./src"),
},
},
build: {
target: mode === "development" ? "modules" : "es2015",
sourcemap: mode === "development",
},
});
};
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。