2

我想自定义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 文档显示了如何设置,但没有显示任何代码示例,我们将不胜感激。

4

2 回答 2

4

是的,有一种方法可以做到这一点,而且非常容易:) 创建一个示意图,并将“extends”:[“@schematics/angular”] 添加到该示意图的 collection.json 中。(或@nrwl/schematics,如果你正在使用它)

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

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

于 2018-12-21T21:19:02.990 回答
3

您可以在 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
于 2018-12-17T19:33:47.003 回答