diff --git a/package.json b/package.json index 0c3f7e6..4153b9f 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,7 @@ "private": true, "scripts": { "i": "pnpm install", - "dev": "VITE_CJS_IGNORE_WARNING=1 vite --mode base", + "dev": "vite --mode base", "ts:check": "pnpm vue-tsc --noEmit --skipLibCheck", "build:pro": "VITE_CJS_IGNORE_WARNING=1 vite build --mode pro", "build:dev": "VITE_CJS_IGNORE_WARNING=1 vite build --mode dev", diff --git a/src/components/Form/src/helper/componentMap.ts b/src/components/Form/src/helper/componentMap.ts index 67b06ef..1858a19 100644 --- a/src/components/Form/src/helper/componentMap.ts +++ b/src/components/Form/src/helper/componentMap.ts @@ -1,5 +1,6 @@ // Author: fruit.com.cn +import { defineAsyncComponent } from 'vue' import type { Component } from 'vue' import { ElCascader, @@ -23,9 +24,12 @@ import { ElUpload } from 'element-plus' import { InputPassword } from '@/components/InputPassword' -import { Editor } from '@/components/Editor' import { ComponentName } from '../types' +// wang-editor 打包后约 1.1MB:改成异步组件,只有真正渲染编辑器字段时才加载, +// 避免登录页这类只是用了 Form 的页面把它一并拉进首屏。 +const Editor = defineAsyncComponent(() => import('@/components/Editor')) + const componentMap: Recordable = { RadioGroup: ElRadioGroup, RadioButton: ElRadioGroup, diff --git a/src/components/Form/src/types/index.ts b/src/components/Form/src/types/index.ts index 402116d..a9f1e84 100644 --- a/src/components/Form/src/types/index.ts +++ b/src/components/Form/src/types/index.ts @@ -22,7 +22,8 @@ import { ISelectProps, UploadProps } from 'element-plus' -import { IEditorConfig } from '@wangeditor/editor' +// 仅类型引用:必须用 import type,否则会把整个 wang-editor 打进登录页的依赖链 +import type { IEditorConfig } from '@wangeditor/editor' import { CSSProperties } from 'vue' export interface PlaceholderModel { diff --git a/vite.config.mts b/vite.config.mts index fa5bcbc..b31af6d 100644 --- a/vite.config.mts +++ b/vite.config.mts @@ -139,7 +139,10 @@ export default ({ command, mode }: ConfigEnv): UserConfig => { hmr: { overlay: false }, - host: '0.0.0.0' + // 必须同时监听 IPv6:Windows 上 localhost 先解析成 ::1, + // 只绑 0.0.0.0 会让每次新建连接都等 IPv6 超时(约 2s)再回退到 IPv4, + // 表现为页面白屏很久。'::' 是双栈,IPv4 局域网访问同样可用。 + host: '::' }, optimizeDeps: { include: [