我正在尝试创建一个无需先执行“ng new project-name”然后运行“ng g my-schematic”即可运行的新原理图
当我什至在本地运行我的原理图时,我必须首先将我的 CLI 的 defaultCollection 设置为我的原理图,这没有意义,我不确定为什么会发生这种情况。
我得到的错误是“在@schematics/angular 中找不到我的示意图”
我的原理图非常简单,我希望它能够运行并在运行时生成项目的整个脚手架。
export function nextGen(options: any): Rule {
return (tree: Tree, _context: SchematicContext) => {
const rule = mergeWith(apply(url('./files'), [
template({
...options
}),
forEach((fileEntry: FileEntry) => {
console.log(fileEntry.path);
if (tree.exists(fileEntry.path)) {
tree.overwrite(fileEntry.path, fileEntry.content);
return null;
}
return fileEntry;
})
]))
return rule(tree, _context);
}
};
有没有一种已知且简单的方法来实现这一点?我不确定尝试“扩展”“新”原理图或使用“ng new project-name collection=my-schematic”是否可行?
如果这些选项中的任何一个都是可能的,那么就传入的树而言,这意味着什么,以及如何操纵它来生成包含在“./files”库中的文件?
谢谢!