diff --git a/packages/code-generator/src/plugins/common/esmodule.ts b/packages/code-generator/src/plugins/common/esmodule.ts index 4cd09d587..49c1126ef 100644 --- a/packages/code-generator/src/plugins/common/esmodule.ts +++ b/packages/code-generator/src/plugins/common/esmodule.ts @@ -63,7 +63,7 @@ function buildPackageImport( const srcName = dep.exportName; let targetName = dep.componentName || dep.exportName; - // 如果是自组件,则导出父组件,并且根据自组件命名规则,判断是否需要定义标识符 + // 如果是子组件,则导出父组件,并且根据自组件命名规则,判断是否需要定义标识符 if (dep.subName) { if (targetName !== `${srcName}.${dep.subName}`) { if (!isValidIdentifier(targetName)) { diff --git a/packages/code-generator/src/plugins/project/framework/icejs/plugins/packageJSON.ts b/packages/code-generator/src/plugins/project/framework/icejs/plugins/packageJSON.ts index ee125dfa0..c3eb5198d 100644 --- a/packages/code-generator/src/plugins/project/framework/icejs/plugins/packageJSON.ts +++ b/packages/code-generator/src/plugins/project/framework/icejs/plugins/packageJSON.ts @@ -74,7 +74,6 @@ const pluginFactory: BuilderComponentPluginFactory = () => { originTemplate: '@alifd/scaffold-lite-js', }; - console.log(ir.packages); ir.packages.forEach((packageInfo) => { packageJson.dependencies[packageInfo.package] = packageInfo.version; }); diff --git a/packages/code-generator/src/publisher/disk/utils.ts b/packages/code-generator/src/publisher/disk/utils.ts index 2f12d1bdf..933a41848 100644 --- a/packages/code-generator/src/publisher/disk/utils.ts +++ b/packages/code-generator/src/publisher/disk/utils.ts @@ -37,9 +37,9 @@ const writeFilesToFolder = async (folderPath: string, files: ResultFile[], fs: I await Promise.all(promises); }; -const writeSubFoldersToFolder = async (folderPath: string, subFolders: ResultDir[]): Promise => { +const writeSubFoldersToFolder = async (folderPath: string, subFolders: ResultDir[], fs: IFileSystem): Promise => { const promises = subFolders.map((subFolder) => { - return writeFolder(subFolder, folderPath); + return writeFolder(subFolder, folderPath, false, fs); }); await Promise.all(promises); diff --git a/packages/code-generator/src/types/core.ts b/packages/code-generator/src/types/core.ts index 8666f507e..a682a44af 100644 --- a/packages/code-generator/src/types/core.ts +++ b/packages/code-generator/src/types/core.ts @@ -162,6 +162,9 @@ export type CompositeValueGeneratorOptions = { nodeGenerator?: NodeGenerator; }; +/** + * 作用域定义,维护作用域内定义,支持作用域链上溯 + */ export interface IScope { // 作用域内定义 bindings?: IScopeBindings; diff --git a/packages/code-generator/src/utils/Scope.ts b/packages/code-generator/src/utils/Scope.ts index e8b7bf235..18bbdd05c 100644 --- a/packages/code-generator/src/utils/Scope.ts +++ b/packages/code-generator/src/utils/Scope.ts @@ -2,6 +2,9 @@ import { IScope } from '../types/core'; import { IScopeBindings, ScopeBindings } from './ScopeBindings'; class Scope implements IScope { + /** + * 创建根部 Scope,根据需要被上溯的作用域链决定是否开启新的 + */ static createRootScope(): IScope { return new Scope(); } diff --git a/packages/code-generator/src/utils/common.ts b/packages/code-generator/src/utils/common.ts index fe05ce423..e773658f4 100644 --- a/packages/code-generator/src/utils/common.ts +++ b/packages/code-generator/src/utils/common.ts @@ -27,7 +27,9 @@ export function uniqueArray(arr: T[], by: (i: T) => string) { arr.forEach((item) => { map[by(item)] = item; }); - const uniqueKeys = [...new Set(Object.keys(map))]; + // FIXME: Babel 编译存在问题,暂时替换实现 + // const uniqueKeys = [...new Set(Object.keys(map))]; + const uniqueKeys = Array.from(new Set(Object.keys(map))); const uniqueItems = uniqueKeys.map((key) => map[key]); return uniqueItems; } diff --git a/packages/code-generator/src/utils/expressionParser.ts b/packages/code-generator/src/utils/expressionParser.ts index 3e8316728..bf7563331 100644 --- a/packages/code-generator/src/utils/expressionParser.ts +++ b/packages/code-generator/src/utils/expressionParser.ts @@ -168,7 +168,7 @@ export function parseExpressionGetGlobalVariables( addUndeclaredIdentifierIfNeeded(item, path); }); } else { - addUndeclaredIdentifierIfNeeded(fieldValue, path); + addUndeclaredIdentifierIfNeeded(fieldValue as Record | null, path); } } });