问题标签 [angular-schematics]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
angular - 在Angular 2+中生成没有spec.ts文件的组件
每当我创建一个新组件时,有没有办法摆脱 Angular 2+ 中的 spec.ts 文件。我知道这是出于测试目的,但如果我不需要它怎么办。
可能有一些设置可以禁用这个特定的测试文件。
angular - angular-cli 自定义原理图/集合
我正在尝试为 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”。
我认为这清楚地表明它确实在使用我的收藏?
有人设法让自定义集合正常工作吗?在全球范围内生成组件/模块?
javascript - Angular 5 原理图模板
所以,最近我的团队开始尝试最新的 angular-cli 附带的新原理图,并决定构建我们自己的一些原理图。到目前为止,一切都很顺利,但现在我们正处于一个十字路口,我们不知道该去哪里。
我们有一个 json 文件,其中包含一些我们想要解析并为其生成自定义表单的数据。通常,当您模板化您使用的文件时:
<%= optionalFunc(someParam) %>
然而,这种类型的模板似乎只处理字符串、布尔值和可能的整数。有什么想法吗?
angular - angular-cli 自定义原理图——修改 environment.ts
我正在为我们的 Angular Cli 项目开发自定义原理图。其中一项要求是将属性/变量添加到 environment.prod.ts 和 environment.dev.ts 文件中。我想知道你们中是否有人这样做过,以及你是如何做到的。到目前为止,我还没有找到任何方法来检索文件本身的内容。我只设法找到以下内容:
任何帮助是极大的赞赏!
angular - 如何用角度示意图覆盖文件?
我想写一个Rule
每次都覆盖一个文件。在下面并已MergeStrategy
设置为Overwrite
:
collection.json
function/index.ts
files/__path__/__name@dasherize__.ts
我跑schematics .:function --name=test --dry-run=false
我得到
创建 /src/app/test.ts(33 字节)
但是,第二次。
错误!/src/app/test.ts 已经存在。
它不应该在没有错误的情况下覆盖文件 test.ts 吗?
编辑:
所有答案都有效并且很棒,但似乎它们是变通方法,没有明显的“正确”答案,并且可能基于偏好/自以为是。所以不知道如何标记为已回答。
angular - Angular 示意图中的 branchAndMerge 函数有什么作用?
我正在尝试使用 Angular 原理图,并且在各个地方都遇到了函数 branchAndMerge()。然而,没有人解释它的作用。
我见过的地方:
澄清它与merge/mergeWith的区别以及如何正确使用它将不胜感激。
PS:合并在@angular-devkit/schematics中解释如下:
将输入树与另一棵树合并。
顺便说一句,我假设 merge() 现在是 mergeWith,尽管我对此不是 100% 确定的。
代码示例
angular - Angular 6 Schematics 无效源(未定义)
我正在创建一些自定义原理图,这将帮助我们快速启动 Angular 库项目。鉴于此,我不希望开发人员必须有一个ng ...
他们必须运行的命令清单才能启动和运行库,我只想有一个命令来设置工作区,将库放入其中,进行一些自定义(以开玩笑的方式交换业力,添加一些 CI 配置等)。
我这样做的方法是创建一个从空树开始的原理图,然后ng-new
从 调用原理图@schematics/angular
,通过externalSchematic()
链接library
来自同一个包的原理图,然后是我们的一些自定义原理图以进行自定义。
我想要使用externalSchematic()
而不是将所有外部原理图的代码复制到我的原理图项目中的原因是,当@schematics/angular
更新时,我可以yarn upgrade-interactive
通过运行测试套件来查找和解决任何问题来合并这些更新。最终,我们可以使用 CI 将其自动化。
我在这里创建了一个小的自包含示例来重现我的错误:https ://github.com/matt328/ng-schematics-test
重现步骤:
当我运行原理图时,它会报告Invalid source: undefined.
这里
https://github.com/matt328/ng-schematics-test/blob/master/src/my-full-schematic/index.ts#L30
是我externalSchematic()
用来打电话的地方ng-new
。
我已经对源代码进行了一些挖掘,发现它是由一些角度示意图引起的
在他们的模式中。该错误是projectName
未定义的结果。
为了能够与 通话ng-new
,还需要做externalSchema()
什么?这种方法有效吗,还是有其他方法可以做到这一点?
angular - Angular/CLI 6.x 中的自定义原理图构建没有错误,但我无法使用它来生成文件
在 Angular 6.0 之前,我已经创建了一些示意图。schematic 'my-schematic' not found in collection @schematics/angular
当我尝试在托管应用程序(Angular 6)上生成一些代码时,我在 Angular 5.x 中执行的相同步骤现在总是会导致错误?。
我的设置(全局 Angular 的东西):
我的步骤:
- 冉
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
. - Ran
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 只有几周的历史,所以我假设旧方法应该仍然有效。
angular - 在 angular-cli 中打印自定义原理图日志
我正在写自定义角度升级示意图。
SchematicContext
包含一个可用于调试的记录器对象。
运行 angular-cli,我的代码已执行,但我看不到日志。
有没有办法激活和配置这个记录器?
angular - 尝试创建导航栏时出现角度示意图错误
尝试在角度 6 中运行命令时引发以下错误ng generate @angular/material-nav --name=main-nav
。谁能帮我解决这个问题>
错误:在集合“@schematics/angular”中找不到示意图“@angular/material-nav”。