我正在尝试为 angular cli 创建自定义原理图。到目前为止,我已经发现必须编译“集合”,cli 无法读取打字稿。这意味着您不能只克隆https://github.com/angular/devkit/tree/master/packages/schematics/angular更改您需要的任何内容并将其发布到 npm 上,这意味着您需要克隆整个https:// github.com/angular/devkit并使用它您需要通过 tsc 运行它的编译原理图,然后您可以将这些编译文件发布到 npm 并使用 npm 全局安装,例如npm run build
来创建
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
它说
在集合“@thescrollbar/schematics”中找不到示意图“shat”。
我认为这清楚地表明它确实在使用我的收藏?
有人设法让自定义集合正常工作吗?在全球范围内生成组件/模块?