gpt4 book ai didi

Angular 6 Schematics 无效源(未定义)

转载 作者:太空狗 更新时间:2023-10-29 17:36:40 26 4
gpt4 key购买 nike

我正在创建一些自定义示意图,以帮助我们快速启动 Angular 库项目。鉴于此,我不希望开发人员必须有一个 ng ... 命令的 list ,他们必须运行这些命令才能启动和运行库,我只想有一个命令设置一个工作区,在其中放置一个库,进行一些自定义(开玩笑地交换业力,添加一些 CI 配置等)。

我这样做的方法是创建一个以空树开始的原理图,然后通过 @schematics/angular 调用 ng-new 原理图>externalSchematic() 然后链接同一包中的 library 原理图,然后是我们的一些自定义原理图以进行自定义。

我想使用 externalSchematic() 而不是将所有外部原理图的代码复制到我的原理图项目中的原因是,当 @schematics/angular 是更新后,我可以通过执行 yarn upgrade-interactive 合并这些更新,并通过运行测试套件查找并解决任何问题。最终我们可以使用 CI 将其自动化。

我创建了一个小的独立示例来重现我的错误:https://github.com/matt328/ng-schematics-test

重现步骤:

git clone
npm install
npm run build
schematics ng-schematics-test:my-full-schematic --name=test-schematic

当我运行原理图时,它报告Invalid source: undefined.

这里

https://github.com/matt328/ng-schematics-test/blob/master/src/my-full-schematic/index.ts#L30

是我使用 externalSchematic() 调用 ng-new 的地方。

我深入研究了源代码,发现它是由一些 Angular 示意图引起的

"$default": {
"$source": "projectName"
}

在他们的架构中。该错误是 projectName 未定义的结果。

为了能够使用 externalSchema() 调用 ng-new,还需要做什么?这种方法是否有效,或者是否有其他方法可以做到这一点?

最佳答案

早在 2 月初,我就能够从这个 demo working 获得 externalSchematics 命令的工作版本.今天当我试图复制我以前的结果时,我收到了和你一样的错误(对于 ng-newcomponentinterface 当我尝试从原理图项目中运行命令。

但是,当我创建一个新的 Angular 项目并创建指向原理图项目的符号链接(symbolic link)时,我能够在 Angular 项目中成功生成一个 componentinterfaceng-new 还没有成功,因为 node_modules 映射不是那么简单(它确实提示我输入一些必需的参数,versionname,然后抛出一个丢失的模块错误,我想这可能被解释为进度)。

关于Angular 6 Schematics 无效源(未定义),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50489274/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com