如何扩展现有的角度示意图

时间:2018-11-20 12:02:26

标签: angular nrwl angular-schematics

我想自定义ng g app原理图,以便调用ng g app myapp将创建myapp/src/environments/environment.ts文件,如下所示:

import { environment as baseEnvironment } from '@myworkspace/environments/environment';

export const environment = Object.assign(
  { production: false },
  baseEnvironment
);

Nx docs显示了如何进行设置,但未显示任何代码示例,将不胜感激。

2 个答案:

答案 0 :(得分:0)

您可以在Nx工作区中创建自定义原理图。

ng g workspace-schematic my-new-app

这将在tools/schematics下创建一个新原理图。您可以编辑创建的index.ts文件以插入自己的代码。

    import { chain, externalSchematic, Rule } from '@angular-devkit/schematics';

export default function(schema: any): Rule {
    return chain([
        externalSchematic('@nrwl/schematics', 'app', {
          name: schema.name
        }),

        // add your custom code here
    ]);
}

然后可以使用以下命令运行此命令:

 npm run workspace-schematic my-new-app -- somename

答案 1 :(得分:0)

是的,有一种方法可以做到,而且很容易:) 创建一个原理图,并在此原理图的collection.json中添加“ extends”:[“ @ schematics / angular”]。 (或@ nrwl / schematics(如果您正在使用的话)

将原理图定义为“应用”(因为这是您要编辑的功能),工厂将使用externalSchematic方法调用angular / nrwl的创建应用原理图,然后可以将环境文件添加到此创建的树中。

完成! (我假设创建原理图的知识是已知的,否则,https://blog.angular.io/schematics-an-introduction-dc1dfbc2a2b2应该是一个很好的起点)