【问题标题】:How to generate an Angular app in a custom Nx generator?如何在自定义 Nx 生成器中生成 Angular 应用程序?
【发布时间】:2021-11-21 11:17:48
【问题描述】:

我有一个 Nx Angular 单一存储库。我想实现一个自定义生成器,这样我就可以快速创建应用程序。我可以使用来自@nrwl/workspacelibraryGenerator 函数来生成库。到目前为止,我的生成器看起来像这样:

import { Tree, formatFiles } from '@nrwl/devkit';
import { libraryGenerator } from '@nrwl/workspace';

export default async function (host: Tree, schema: App) {
  await generateLibrary(host, schema, 'models', 'domain');
  await generateLibrary(host, schema, 'data-access', 'data');

  await formatFiles(host);
}

async function generateLibrary(
  host: Tree,
  schema: App,
  libraryName: string,
  type: string
) {
  const directory = `${schema.system.toLowerCase()}/${schema.name}`;

  const importPath = `@org/${schema.system.toUpperCase()}/${
    schema.name
  }/${libraryName}`;

  await libraryGenerator(host, {
    name: libraryName,
    directory,
    importPath,
    linter: 'eslint',
    simpleModuleName: true,
    strict: true,
    tags: `type:${type}', scope:${schema.scope}`,
  });
}

现在,我也想生成应用程序,但我不确定如何做到这一点,因为没有什么比来自@nrwl/workspace 或来自@nrwl/devkit 的“应用程序生成器”更相似。

【问题讨论】:

    标签: nrwl-nx nrwl


    【解决方案1】:

    您可以从@nrwl/angular/generators 使用applicationGenerator

    import { applicationGenerator } from '@nrwl/angular/generators
    ....
    ....
    ....
    await applicationGenerator(host, {
      name: appName,
      directory: directoryName,
      style: 'scss',
      tags: ``,
      routing: false,
      e2eTestRunner: E2eTestRunner.None,
    });
    

    如果您正在寻找生成嵌套应用程序,您可以使用:

    import { applicationGenerator } from '@nrwl/nest';
    ....
    ....
    ....
    await applicationGenerator(host, {
      name: appName,
      unitTestRunner: 'jest',
      linter: Linter.EsLint,
      directory: directoryName,
      tags: ``
    });
    

    【讨论】:

      猜你喜欢
      • 2018-05-11
      • 1970-01-01
      • 2022-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-07
      • 2022-11-15
      • 2010-10-31
      相关资源
      最近更新 更多