我正在尝试为Angular CLI创建自定义原理图。到目前为止,我已经发现必须编译“collection”,因为CLI无法读取TypeScript。这意味着你不能只克隆https://github.com/angular/devkit/tree/master/packages/schematics/angular,更改所需的内容并将其发布到npm上,这意味着你需要运行tsc来编译整个https://github.com/angular/devkit,然后可以将这些编译文件发布到npm并使用npm全局安装,例如:
但是,如果你将此全局安装的软件包复制到CLI模块中
现在我遇到了一个新的问题,我没有解决办法。当我尝试生成一个新组件时,使用以下命令:
“Schematic "shat" not found in collection "@thescrollbar/schematics"。”
我认为这明确表明它确实正在使用我的集合?
是否有人成功地让自定义集合工作?在全局范围内和用于生成组件/模块?
npm i -g @thescrollbar/schematics
然后我应该能够执行ng new --collection=@thescrollbar/schematics my-app
,但令人惊讶的是,它没有起作用,并且会抛出tree.branch is not a function
。但是,如果你将此全局安装的软件包复制到CLI模块中
/usr/local/bin/node_modules/@thescrollbar/schematics
-> /usr/local/bin/node_modules/@angular/cli/node_modules/@thescrollbar/schematics
它就开始工作了,你就可以创建一个基于你的原理图的新应用程序。现在我遇到了一个新的问题,我没有解决办法。当我尝试生成一个新组件时,使用以下命令:
ng g c --collection=@thescrollbar/schematics logo
它使用了 @schematics/angular
模板来创建组件,而不是我的集合中的模板。即使我故意这样做:
ng g shat --collection=@thescrollbar/schematics logo
它显示:“Schematic "shat" not found in collection "@thescrollbar/schematics"。”
我认为这明确表明它确实正在使用我的集合?
是否有人成功地让自定义集合工作?在全局范围内和用于生成组件/模块?