Files
hoppscotch/packages/hoppscotch-sh-admin/vite.config.ts
2023-08-24 20:41:46 +05:30

103 lines
2.6 KiB
TypeScript

import { defineConfig } from 'vite';
import vue from '@vitejs/plugin-vue';
import { FileSystemIconLoader } from 'unplugin-icons/loaders';
import Icons from 'unplugin-icons/vite';
import Unfonts from "unplugin-fonts/vite";
import IconResolver from 'unplugin-icons/resolver';
import Components from 'unplugin-vue-components/vite';
import WindiCSS from 'vite-plugin-windicss';
import Pages from 'vite-plugin-pages';
import Layouts from 'vite-plugin-vue-layouts';
import VueI18n from '@intlify/vite-plugin-vue-i18n';
import path from 'path';
import ImportMetaEnv from "@import-meta-env/unplugin"
// https://vitejs.dev/config/
export default defineConfig({
envPrefix:
process.env.HOPP_ALLOW_RUNTIME_ENV
? "VITE_BUILDTIME_"
: "VITE_",
envDir: path.resolve(__dirname, "../.."),
server: {
port: 3100,
},
resolve: {
alias: {
'~': path.resolve(__dirname, '../hoppscotch-sh-admin/src'),
'@modules': path.resolve(__dirname, '../hoppscotch-sh-admin/src/modules'),
},
},
plugins: [
vue(),
Pages({
dirs: './src/pages',
routeStyle: 'nuxt',
}),
Layouts({
defaultLayout: 'default',
layoutsDirs: 'src/layouts',
}),
VueI18n({
runtimeOnly: false,
compositionOnly: true,
include: [path.resolve(__dirname, 'locales')],
}),
WindiCSS({
root: path.resolve(__dirname),
}),
Components({
dts: './src/components.d.ts',
dirs: ['./src/components'],
directoryAsNamespace: true,
resolvers: [
IconResolver({
prefix: 'icon',
customCollections: ['auth'],
}),
(compName: string) => {
if (compName.startsWith('Hopp'))
return { name: compName, from: '@hoppscotch/ui' };
else return undefined;
},
],
types: [
{
from: 'vue-tippy',
names: ['Tippy'],
},
],
}),
Icons({
compiler: 'vue3',
customCollections: {
auth: FileSystemIconLoader('../hoppscotch-sh-admin/assets/icons/auth'),
},
}),
Unfonts({
fontsource: {
families: [
{
name: "Inter Variable",
variables: ["variable-full"],
},
{
name: "Material Symbols Rounded Variable",
variables: ["variable-full"],
},
{
name: "Roboto Mono Variable",
variables: ["variable-full"],
},
],
}
}),
process.env.HOPP_ALLOW_RUNTIME_ENV
? ImportMetaEnv.vite({
example: "../../.env.example",
env: "../../.env",
})
: [],
],
});