127 lines
3.4 KiB
TypeScript
127 lines
3.4 KiB
TypeScript
import { fileURLToPath, URL } from "node:url";
|
|
import { defineConfig, loadEnv } from "vite";
|
|
import vue from "@vitejs/plugin-vue";
|
|
import AutoImport from "unplugin-auto-import/vite";
|
|
import Components from "unplugin-vue-components/vite";
|
|
import { TDesignResolver } from "unplugin-vue-components/resolvers";
|
|
|
|
const localTimiWebRoot = fileURLToPath(new URL("../timi-web", import.meta.url));
|
|
const localTimiWebModule = fileURLToPath(new URL("./src/utils/timiWeb.ts", import.meta.url));
|
|
const localTimiWebStyle = fileURLToPath(new URL("../timi-web/dist/timi-web.css", import.meta.url));
|
|
const localTimiWebEditor = fileURLToPath(new URL("../timi-web/src/editor/index.ts", import.meta.url));
|
|
const localTimiWebApiRoot = fileURLToPath(new URL("../timi-web-api", import.meta.url));
|
|
const localTimiWebApiModule = fileURLToPath(new URL("../timi-web-api/dist/index.js", import.meta.url));
|
|
const localTimiTsModule = fileURLToPath(new URL("../timi-ts/src/index.ts", import.meta.url));
|
|
const localTimiTDesignMobileRoot = fileURLToPath(new URL("../timi-tdesign-mobile", import.meta.url));
|
|
const localTimiTDesignMobileModule = fileURLToPath(new URL("../timi-tdesign-mobile/src/index.ts", import.meta.url));
|
|
const localTimiTDesignMobileStyle = fileURLToPath(new URL("../timi-tdesign-mobile/dist/timi-tdesign-mobile.css", import.meta.url));
|
|
const projectRoot = fileURLToPath(new URL(".", import.meta.url));
|
|
|
|
export default defineConfig(({ mode }) => {
|
|
const env = loadEnv(mode, process.cwd(), "");
|
|
const useLocalTimiWeb = env.VITE_USE_LOCAL_TIMI_WEB !== "false";
|
|
const useLocalTimiTDesignMobile = env.VITE_USE_LOCAL_TIMI_TDESIGN_MOBILE !== "false";
|
|
return {
|
|
resolve: {
|
|
dedupe: ["vue", "pinia", "vue-router"],
|
|
alias: [
|
|
{
|
|
find: "@",
|
|
replacement: fileURLToPath(new URL("./src", import.meta.url))
|
|
},
|
|
...(useLocalTimiWeb
|
|
? [
|
|
{
|
|
find: /^timi-web$/,
|
|
replacement: localTimiWebModule
|
|
},
|
|
{
|
|
find: /^timi-web\/editor$/,
|
|
replacement: localTimiWebEditor
|
|
},
|
|
{
|
|
find: /^timi-web\/style\.css$/,
|
|
replacement: localTimiWebStyle
|
|
}
|
|
]
|
|
: []),
|
|
{
|
|
find: /^timi-web-api$/,
|
|
replacement: localTimiWebApiModule
|
|
},
|
|
{
|
|
find: /^timi-web-api\//,
|
|
replacement: `${localTimiWebApiRoot}/dist/`
|
|
},
|
|
...(useLocalTimiWeb
|
|
? [
|
|
{
|
|
find: /^timi-ts$/,
|
|
replacement: localTimiTsModule
|
|
}
|
|
]
|
|
: []),
|
|
...(useLocalTimiTDesignMobile
|
|
? [
|
|
{
|
|
find: /^timi-tdesign-mobile$/,
|
|
replacement: localTimiTDesignMobileModule
|
|
},
|
|
{
|
|
find: /^timi-tdesign-mobile\/style\.css$/,
|
|
replacement: localTimiTDesignMobileStyle
|
|
}
|
|
]
|
|
: [])
|
|
]
|
|
},
|
|
plugins: [
|
|
vue(),
|
|
AutoImport({
|
|
imports: ["vue", "vue-router", "pinia"],
|
|
dts: "auto-imports.d.ts",
|
|
eslintrc: {
|
|
enabled: true,
|
|
filepath: "./.eslintrc-auto-import.json",
|
|
globalsPropValue: true
|
|
},
|
|
resolvers: [
|
|
TDesignResolver({
|
|
library: "mobile-vue"
|
|
})
|
|
]
|
|
}),
|
|
Components({
|
|
dirs: ["src/components", "src/layout"],
|
|
dts: "components.d.ts",
|
|
resolvers: [
|
|
TDesignResolver({
|
|
library: "mobile-vue"
|
|
})
|
|
]
|
|
})
|
|
],
|
|
css: {
|
|
preprocessorOptions: {
|
|
less: {
|
|
javascriptEnabled: true
|
|
}
|
|
}
|
|
},
|
|
server: {
|
|
port: 84,
|
|
allowedHosts: [
|
|
"gao.imyeyu.com"
|
|
],
|
|
fs: {
|
|
allow: [
|
|
projectRoot,
|
|
localTimiWebRoot,
|
|
localTimiWebApiRoot,
|
|
localTimiTDesignMobileRoot
|
|
]
|
|
}
|
|
}
|
|
};
|
|
});
|