首页 > 解决方案 > nrwl/nx 工作区特定示意图

问题描述

我一直在研究 nrwl 扩展,它们看起来很棒。但是,当我按照他们的Workspace Specific Sc​​hematics教程进行操作时,最后一步并没有显示要运行的命令。你能告诉我如何运行我创建的原理图吗?我确定这很简单,但是我在任何地方都找不到命令。

标签: nrwlangular-schematics

解决方案


(编辑:有关正确的 Nx 方法,请参阅 Stefan 的答案。如果您想发布原理图,您仍然需要遵循此答案)

用于原理图的 Nx 生成器并不能完成您的原理图工作所需的一切。我在下面学到的知识是通过遵循Angular 团队的这篇博客文章在另一个目录中创建一个空白原理图,我建议遵循这篇文章来总体理解原理图。

以下粗略步骤应该可以帮助您上路:

  1. 使用 Nx 原理图生成原理图ng g workspace-schematic
  2. 在目录中添加一个collection.json文件tools/schematics,例如

    {
      "$schema": "../../node_modules/@angular-devkit/schematics/collection-schema.json",
      "name": "myCustomCollection",
      "version": "0.0.1",
      "extends": ["@nrwl/schematics"],
      "schematics": {
        "data-access-lib": {
          "factory": "./data-access-lib",
          "schema": "./data-access-lib/schema.json",
          "description": "Create a Data Access Library"
        }
      }
    }
    

    请注意该extends属性,这意味着您的收藏如果没有特定的原理图,将在失败之前查看 Nx 原理图以尝试找到它

  3. schematics向您添加一个package.json指向collection.json文件相对位置的字段(例如"schematics": "./tools/schematics/collection.json"
  4. 将您的 Typescript 编译为 Javascript。我制作了一个package.json要运行的脚本tsc -p tools/tsconfig.typescript.json(您应该修改您的 tsconfig 文件以保留已编译的 js)
  5. (可选)修改您angular.json的默认指向您的集合。cli > defaultCollection = "."@nrwl/schematics最初是给我的)
    • 注意:将默认集合设置为“。” 使其仅在根目录中有效。如果您需要在子文件夹中运行您的收藏,您需要像这样运行它ng g ../..:data-access-lib
  6. 运行您的原理图ng g data-access-lib(如果您完成了第 5 步)或ng g .:data-access-lib

Nx 原理图生成器似乎有一些重大差距,但希望这能帮助您重回正轨。


推荐阅读