gpt4 book ai didi

angularjs - Angular Schematics - 在树上应用数以千计的更改导致错误超出最大调用堆栈大小

转载 作者:行者123 更新时间:2023-12-05 07:07:22 25 4
gpt4 key购买 nike

我尝试将一个大型 AngularJs 项目迁移到 Angular。我发现 Angular Schematics 是自动执行某些任务的好方法。

我的第一个任务是为每个文件夹创建组件,我有大约 1200 个组件要创建。

我的函数是这样的:

return (tree: Tree, _context: SchematicContext) => {
const directory = tree.getDir('my_path/pages');

const rules: Rule[] = [];
directory.visit((filePath) => {
if (!filePath.endsWith('config.ts')) {
return;
}

const parsedPath = parseName(dirPath, basename(filePath).split('.')[0]);
options = {
path: parsedPath.path,
name: parsedPath.name
};

const templateSource = apply(
url('./files'),
[
applyTemplates({
...strings,
...options
}),
move(parsedPath.path)
]
);

const rule = mergeWith(templateSource);
rules.push(rule);
});

return chain(rules);
};

所以我最终将 1200 条规则链接到我的树,这导致了错误 Maximum call stack size exceeded。如何有效地应用基于模型的组件创建?

*该代码适用于较小的项目,例如创建 200 个组件。

我在 Github repo of Angular-Cli 上创建了一个问题

最佳答案

由于 API 接受 Promise,您可以使用异步规则解决此错误:

return chain(rules.map(rule => () => Promise.resolve(rule)));

关于angularjs - Angular Schematics - 在树上应用数以千计的更改导致错误超出最大调用堆栈大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62172556/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com