如何为原理图创建任务?

Posted

技术标签:

【中文标题】如何为原理图创建任务?【英文标题】:How can I create a task for schematics? 【发布时间】:2019-03-19 14:34:01 【问题描述】:

Angular原理图有一些tasks。 我想创建自己的任务以使用脚本执行器运行。 An example of how angular does this.

目前,我只是在示意图末尾生成预定义任务。

【问题讨论】:

【参考方案1】:

我能够注册一个执行者,但它不受支持,因为我使用的是私有字段。以下是您需要做的:

const host = <NodeModulesEngineHost>(<any>context.engine)._host; // this line is not supported
host.registerTaskExecutor<YourFactoryOptions>(
  name: "your-executor-name",
  create: (opt) => import('../path/to/executor').then(mod => mod.default(opt))
);

你可以see on Github如何创建任务执行器注册,后面其实是registered here。

【讨论】:

【参考方案2】:

我曾想过走这条路,但由于目前不支持添加您自己的任务,因此我决定创建一个简单的示意图来包装我想要调用的方法并使用RunSchematicTask。这解决了我的问题,感觉更安全了,尽管它确实导致了原理图目录中的一些样板/混乱。

例如,下面是简单的示意图:

export function simpleSchematic(options: any): Rule 
  return async () => 
    await someAsyncMethod(options);
  

这是我在“父”示意图中调用它的方式:

export function parentSchematic(options: any): Rule 
  return chain([
    someRuleCreator(options),
    (_tree: Tree, context: SchematicContext) => 
      context.addTask(new RunSchematicTask('simple-schematic', )
    
  ]);

请注意,我确实必须将 simple-schematic 条目添加到 collection.json,但我没有在上面的示例中提供。

【讨论】:

以上是关于如何为原理图创建任务?的主要内容,如果未能解决你的问题,请参考以下文章

如何为情况创建分组条形图[重复]

在 SwiftUI 中,如何为条形图创建动态矩形?

如何为缩略图 Woocommerce 创建滑块

如何为视频创建缩略图或预览?

如何为地理视图(散景)创建自定义颜色图?

如何为多索引数据框创建图