From 85284e54f5874d2c7afe08e401b26ae6b21a153f Mon Sep 17 00:00:00 2001 From: roymondchen Date: Wed, 30 Apr 2025 11:40:56 +0800 Subject: [PATCH] =?UTF-8?q?feat(cli):=20=E6=8C=87=E5=AE=9A=E7=BB=84?= =?UTF-8?q?=E4=BB=B6=E4=B8=8D=E4=BD=BF=E7=94=A8=E5=8A=A8=E6=80=81=E5=8A=A0?= =?UTF-8?q?=E8=BD=BD=EF=BC=8CdynamicImport=E4=B8=BAtrue=E6=97=B6=E6=9C=89?= =?UTF-8?q?=E6=95=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/cli/src/types.ts | 2 ++ packages/cli/src/utils/prepareEntryFile.ts | 6 ++++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/packages/cli/src/types.ts b/packages/cli/src/types.ts index 0de2014e..98b424f3 100644 --- a/packages/cli/src/types.ts +++ b/packages/cli/src/types.ts @@ -84,6 +84,8 @@ export interface UserConfig { npmConfig?: NpmConfig; /** 是否使用import()加载组件 */ dynamicImport?: boolean; + /** 指定组件不使用动态加载,dynamicImport为true时有效 */ + dynamicIgnore?: string[]; hooks?: { beforeWriteEntry?: (genContentMap: Record, app: Core) => Promise>; }; diff --git a/packages/cli/src/utils/prepareEntryFile.ts b/packages/cli/src/utils/prepareEntryFile.ts index 8a924829..6c051c9c 100644 --- a/packages/cli/src/utils/prepareEntryFile.ts +++ b/packages/cli/src/utils/prepareEntryFile.ts @@ -5,7 +5,7 @@ import { EntryType } from '../types'; export const prepareEntryFile = async (app: App) => { const { moduleMainFilePath, options } = app; - const { dynamicImport, hooks, useTs = true } = options; + const { dynamicImport, dynamicIgnore, hooks, useTs = true } = options; let contentMap: Record = { 'comp-entry': generateContent( @@ -20,6 +20,7 @@ export const prepareEntryFile = async (app: App) => { moduleMainFilePath.componentPackage, moduleMainFilePath.componentMap, dynamicImport, + dynamicIgnore, ), 'plugin-entry': generateContent( useTs, @@ -107,6 +108,7 @@ export const generateContent = ( packageMap: Record = {}, map: Record = {}, dynamicImport = false, + dynamicIgnore: string[] = [], ) => { const list: string[] = []; const importDeclarations: string[] = []; @@ -117,7 +119,7 @@ export const generateContent = ( if ([EntryType.CONFIG, EntryType.EVENT, EntryType.VALUE].includes(type) && packagePath === packageMap[key]) { importDeclarations.push(`import { ${type} as ${name} } from '${packageMap[key]}'`); list.push(`'${key}': ${name}`); - } else if (dynamicImport) { + } else if (dynamicImport && !dynamicIgnore.includes(key)) { list.push(`'${key}': () => import('${packagePath}')`); } else { importDeclarations.push(`import ${name} from '${packagePath}'`);