我之前在Angular 6.0之前创建了一些原理图。当我尝试在托管应用程序(Angular 6)上生成一些代码时,我在Angular 5.x中执行的相同步骤现在总是导致错误schematic 'my-schematic' not found in collection @schematics/angular
。
我的设置(全局角色内容):
Angular CLI: 6.0.0
Node: 8.11.1
OS: win32 x64
@angular-devkit/{architect, core, schematics} 0.6.0
@schematics/angular 0.6.0
rxjs 6.1.0
typescript 2.7.2
我的步骤:
schematics schematic --name=my-first-schematics
。因此,它创建了一个新的原理图项目,其中包含三个示例模式。然后我导航到新文件夹cd my-first-schematics
。npm run build
。它构建没有错误。schematics .:my-first-schematics
。结果:错误"my-first-schematics" not found in collection "."
我在一些博客中看到他们执行此步骤时没有遇到任何问题。我从来没有用过这个命令,而且我不确定它实际上是做什么的,所以我假设这个命令毕竟不是必需的。npm link
以便我可以在新项目中使用这个新的原理图集合。ng new schematics-consumer
,然后在安装npm之后cd schematics-consumer
。npm link my-first-schematics
所以我现在可以访问该原理图库了。src/app
作为我要生成文件的地方。ng g my-schematic -c my-first-schematics
。导致错误Schematic "my-schematic" not found in collection "@schematics/angular"
。我指定了一个集合。为什么它没有看到我的新系列,它仍然认为每个原理图都在@schematics/angular
?所以,我无法使用原理图生成任何内容。我没有修改schematics schematic name=my-first-schematics
生成的默认代码中的任何内容。
是否有一组新的命令,程序等来创建我们自己的自定义原理图?我错过了哪些步骤?我还需要安装什么?如有必要,我会提供更多信息。
目前,没有关于原理图的新指南或博客,因为6.0只有几个星期的历史,所以我假设旧方法仍然有效。
答案 0 :(得分:1)
问题似乎最终是angular-cli
,请参阅讨论:https://github.com/angular/devkit/issues/528#issuecomment-387415646
要解决此问题,您可以将默认集合设置为自定义原理图:
ng config cli.defaultCollection my-first-schematics
现在您应该可以运行ng g my-schematic
。
如果这不起作用,您可以发布my-first-schematics
目录的文件列表吗?