【问题标题】:Angular Schematics. Tree transforms not executing角度示意图。树转换未执行
【发布时间】:2018-12-26 14:55:45
【问题描述】:

我一直在按照此处创建自定义角度示意图的示例:Creating your own application template for angular-cli

我已经让它在 Mac 上按预期工作了。但是,当我尝试在 PC 上从我的原理图构建时,我只获得了原理图的基本 src 文件,而没有对工作区和 src 目录中的自定义文件进行任何转换。

例如 @my-schematic/my-schematic/workspace/files/ 源目录中的 angular.json 和 package.json

没有被复制到新项目的根文件夹中。

要构建项目,我使用以下步骤:

1) npm install -g @angular-devkit/schematics 
1a) npm install -g @angular-devkit/schematics-cli 
2) npm install -g @my-schematic/my-schematic
3) ng new --collection=@my-schematic/my-schematic foldername 
4) cd [foldername] 
5) npm install 
6) ng serve 

【问题讨论】:

  • @my-schematic/my-schematic 软件包托管在我的工件存储库中。那部分效果很好。该软件包从远程仓库中提取并按预期安装到全局 node_modules 文件夹中。
  • 可以分享原理图代码吗?
  • 本身没有代码,根据教程,它都是关于克隆默认集合并用您的自定义 package.json 和 angular.json 覆盖
  • 它在我的 Mac 上的工作方式是 package.json 和 angular.json 从我放置到工作区/文件中的副本中被拉入最终构建的站点(文件夹名)。但是,在 PC 上,这些文件并没有移动,我得到的是默认文件,这搞砸了我的计划。
  • 我假设这是一个路径问题,您是否在某处编写了任何硬编码路径?

标签: angular angular-schematics


【解决方案1】:

“移动”文件的方式是使用原理图库中的“移动”方法 - 您必须提供该方法的路径来定义文件的去向。此 move 方法使用 'apply' 方法应用于 template() --

apply(url(‘./files’), [
    filter( path => !path.match( /\.bak$/) ),
    template( ...strings, ...options ),
    move( options.path || ‘’ )
]);

所以如果你不告诉我们这个方法在你的原理图中是什么样子的,你的问题就很难调试了:)

【讨论】:

  • 嗨。谢谢你。另外,如果文件已经存在于那个地方,我们可以检查并跳过这部分吗?如果您也可以帮助我编写该代码,那就太好了。
猜你喜欢
  • 2020-06-07
  • 2019-04-21
  • 2019-08-07
  • 2019-08-23
  • 2020-04-24
  • 2019-09-26
  • 2019-11-02
  • 2019-05-17
  • 1970-01-01
相关资源
最近更新 更多