Skip to content

Commit

Permalink
refactor(projects): 细节优化
Browse files Browse the repository at this point in the history
  • Loading branch information
honghuangdc committed Apr 27, 2022
1 parent e899914 commit c275f26
Show file tree
Hide file tree
Showing 10 changed files with 87 additions and 91 deletions.
16 changes: 4 additions & 12 deletions .env-config.ts
@@ -1,13 +1,5 @@
/** 请求环境配置 */
type ServiceEnv = Record<
EnvType,
{
/** 请求地址 */
url: string;
/** 代理地址 */
proxy: string;
}
>;
type ServiceEnv = Record<EnvType, EnvConfig>;

/** 环境配置 */
const serviceEnvConfig: ServiceEnv = {
Expand All @@ -31,8 +23,8 @@ const serviceEnvConfig: ServiceEnv = {
*/
export function getEnvConfig(env: ImportMetaEnv) {
const { VITE_ENV_TYPE = 'dev' } = env;
const envConfig = {
http: serviceEnvConfig[VITE_ENV_TYPE]
};

const envConfig = serviceEnvConfig[VITE_ENV_TYPE];

return envConfig;
}
15 changes: 6 additions & 9 deletions build/config/proxy.ts
@@ -1,21 +1,18 @@
import type { ProxyOptions } from 'vite';
import { getEnvConfig } from '../../.env-config';

/**
* 设置网络代理
* @param viteEnv - vite环境描述
* @param isOpenProxy - 是否开启代理
* @param envConfig - env环境配置
*/
export function createViteProxy(viteEnv: ImportMetaEnv) {
const isOpenProxy = viteEnv.VITE_HTTP_PROXY === 'true';
export function createViteProxy(isOpenProxy: boolean, envConfig: EnvConfig) {
if (!isOpenProxy) return undefined;

const { http } = getEnvConfig(viteEnv);

const proxy: Record<string, string | ProxyOptions> = {
[http.proxy]: {
target: http.url,
[envConfig.proxy]: {
target: envConfig.url,
changeOrigin: true,
rewrite: path => path.replace(new RegExp(`^${http.proxy}`), '')
rewrite: path => path.replace(new RegExp(`^${envConfig.proxy}`), '')
}
};

Expand Down
5 changes: 2 additions & 3 deletions package.json
Expand Up @@ -28,6 +28,8 @@
"dependencies": {
"@antv/g2plot": "^2.4.16",
"@better-scroll/core": "^2.4.2",
"@soybeanjs/vue-admin-layout": "^1.0.2",
"@soybeanjs/vue-admin-tab": "^1.0.1",
"@vueuse/core": "^8.3.1",
"axios": "^0.27.2",
"clipboard": "^2.0.10",
Expand All @@ -40,8 +42,6 @@
"pinia": "^2.0.13",
"print-js": "^1.6.0",
"qs": "^6.10.3",
"soybean-admin-layout": "^1.0.4",
"soybean-admin-tab": "^1.2.3",
"swiper": "^8.1.4",
"ua-parser-js": "^1.0.2",
"vditor": "^3.8.13",
Expand All @@ -67,7 +67,6 @@
"@vitejs/plugin-vue-jsx": "^1.3.10",
"@vue/eslint-config-prettier": "^7.0.0",
"@vue/eslint-config-typescript": "^10.0.0",
"@vue/tsconfig": "^0.1.3",
"commitizen": "^4.2.4",
"cross-env": "^7.0.3",
"cz-conventional-changelog": "^3.3.0",
Expand Down
111 changes: 51 additions & 60 deletions pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 3 additions & 3 deletions src/layouts/BasicLayout/index.vue
@@ -1,5 +1,5 @@
<template>
<soybean-admin-layout
<admin-layout
:mode="mode"
:min-width="theme.layout.minWidth"
:fixed-header-and-tab="theme.fixedHeaderAndTab"
Expand All @@ -25,12 +25,12 @@
<template #footer>
<global-footer />
</template>
</soybean-admin-layout>
</admin-layout>
<setting-drawer />
</template>

<script setup lang="ts">
import SoybeanAdminLayout from 'soybean-admin-layout';
import AdminLayout from '@soybeanjs/vue-admin-layout';
import { useAppStore, useThemeStore } from '@/store';
import { useBasicLayout } from '@/composables';
import { SettingDrawer, GlobalHeader, GlobalTab, GlobalSider, GlobalContent, GlobalFooter } from '../common';
Expand Down
Expand Up @@ -28,7 +28,7 @@
<script setup lang="ts">
import { ref, reactive, computed, nextTick, watch } from 'vue';
import { useEventListener } from '@vueuse/core';
import { ChromeTab, ButtonTab } from 'soybean-admin-tab';
import { ChromeTab, ButtonTab } from '@soybeanjs/vue-admin-tab';
import { Icon } from '@iconify/vue';
import { useThemeStore, useTabStore } from '@/store';
import { setTabRoutes } from '@/utils';
Expand Down
4 changes: 2 additions & 2 deletions src/service/request/index.ts
@@ -1,9 +1,9 @@
import { createRequest } from './request';
import { getEnvConfig } from '~/.env-config';

const { http } = getEnvConfig(import.meta.env);
const envConfig = getEnvConfig(import.meta.env);
const isHttpProxy = import.meta.env.VITE_HTTP_PROXY === 'true';

export const request = createRequest({ baseURL: isHttpProxy ? http.proxy : http.url });
export const request = createRequest({ baseURL: isHttpProxy ? envConfig.proxy : envConfig.url });

export const mockRequest = createRequest({ baseURL: '/mock' });
3 changes: 3 additions & 0 deletions src/typings/components.d.ts
Expand Up @@ -18,6 +18,9 @@ declare module '@vue/runtime-core' {
IconCustomBanner: typeof import('~icons/custom/banner')['default']
IconCustomLogo: typeof import('~icons/custom/logo')['default']
IconCustomLogoFill: typeof import('~icons/custom/logo-fill')['default']
IconCustomNoPermission: typeof import('~icons/custom/no-permission')['default']
IconCustomNotFound: typeof import('~icons/custom/not-found')['default']
IconCustomServiceError: typeof import('~icons/custom/service-error')['default']
IconGridiconsFullscreen: typeof import('~icons/gridicons/fullscreen')['default']
IconGridiconsFullscreenExit: typeof import('~icons/gridicons/fullscreen-exit')['default']
IconIcOutlineCheck: typeof import('~icons/ic/outline-check')['default']
Expand Down
10 changes: 10 additions & 0 deletions src/typings/env.d.ts
Expand Up @@ -6,6 +6,16 @@
*/
type EnvType = 'dev' | 'test' | 'prod';

/**
* env环境配置
*/
interface EnvConfig {
/** 请求地址 */
url: string;
/** 代理地址 */
proxy: string;
}

interface ImportMetaEnv {
/** 项目基本地址 */
readonly VITE_BASE_URL: string;
Expand Down
6 changes: 5 additions & 1 deletion vite.config.ts
@@ -1,13 +1,17 @@
import { fileURLToPath } from 'url';
import { defineConfig, loadEnv } from 'vite';
import { viteDefine, setupVitePlugins, createViteProxy } from './build';
import { getEnvConfig } from './.env-config';

export default defineConfig(configEnv => {
const viteEnv = loadEnv(configEnv.mode, process.cwd()) as ImportMetaEnv;

const rootPath = fileURLToPath(new URL('./', import.meta.url));
const srcPath = `${rootPath}src`;

const isOpenProxy = viteEnv.VITE_HTTP_PROXY === 'true';
const envConfig = getEnvConfig(viteEnv);

return {
base: viteEnv.VITE_BASE_URL,
resolve: {
Expand All @@ -29,7 +33,7 @@ export default defineConfig(configEnv => {
host: '0.0.0.0',
port: 3200,
open: true,
proxy: createViteProxy(viteEnv)
proxy: createViteProxy(isOpenProxy, envConfig)
},
build: {
brotliSize: false
Expand Down

0 comments on commit c275f26

Please sign in to comment.