首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >嵌套的角度添加原理图

嵌套的角度添加原理图
EN

Stack Overflow用户
提问于 2020-01-21 22:19:59
回答 1查看 249关注 0票数 0

我有一个具有add schematic的项目Child。如果Child成为具有add schematic的项目父项目的依赖项,ng-cli将如何处理此问题?我没有看到任何对ng add级联或对依赖模式的调用的引用。Parent是否需要复制Child的原理图,或者是否有一种方法可以手动调用父原理图中的Child's schematic?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-01-22 06:30:45

我真的希望文档更好,但解决方案最终是两件事的组合:

首先,您可以像这样调用外部原理图:

externalSchematic('@keysight/alloy', 'ng-add', options)

然而,单凭这一点是不够的,因为它无法找到您的包。你需要先安装它。这是最终的解决方案:

代码语言:javascript
复制
export function ngAdd(options: any): Rule {
  return (tree: Tree, context: SchematicContext) => {
    console.log('Adding Pathwave Core dependencies...\n');
    dependencies.forEach(dep => addPackageJsonDependency(tree, dep));
    const installTaskId = context.addTask(new NodePackageInstallTask());

    // Chain won't work here since we need the externals to be actually installed before we call their schemas
    // This ensures the externals are a dependency of the node install, so they exist when their schemas run.
    context.addTask(new RunSchematicTask('addExternals', options), [installTaskId]);
  };
}

export function addExternals(options: any): Rule {
  return (_tree: Tree, _context: SchematicContext) => {
    console.log('Running dependency schematics...\n');
    return chain([
      externalSchematic('@keysight/alloy', 'ng-add', options)
    ]);
  };
}

collection.json中,addExternals必须是自己的逻辑示意图

代码语言:javascript
复制
    "addExternals": {
      "description": "Calls dependency add schemas",
      "private": true,
      "factory": "./ng-add/index#addExternals"
    }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59843116

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档