Как я могу заставить nrwl nx уважать обновления тегов? - PullRequest
0 голосов
/ 18 февраля 2020

Когда я обновляю теги проекта в nx. json, TSLint, кажется, не знает, что теги изменились, и создает и строит проект, даже если зависимости нарушены.

Пример

В настоящее время мой файл nx. json выглядит как

{
  "npmScope": "patient-engagement",
  "implicitDependencies": {
    "package.json": "*",
    "tsconfig.json": "*",
    "nx.json": "*"
  },
  "projects": {
    "hep": {
      "tags": ["scope:hep", "compatibility:ie10"],
      "implicitDependencies": []
    },
    "mb-ui": {
      "tags": ["scope:shared", "compatibility:ie10"],
      "implicitDependencies": []
    },
    "utils": {
      "tags": ["scope:shared", "compatibility:ie10"],
      "implicitDependencies": []
    }
  }
}

И мой root tslint. json включает в себя:

"nx-enforce-module-boundaries": [
      true,
      {
        "enforceBuildableLibDependency": true,
        "allow": [],
        "depConstraints": [
          {
            "sourceTag": "scope:hep",
            "onlyDependOnLibsWithTags": [
              "scope:hep",
              "scope:shared"
            ]
          },
          {
            "sourceTag": "compatibility:ie10",
            "onlyDependOnLibsWithTags": [
              "compatibility:ie10"
            ]
          },
          {
            "sourceTag": "scope:shared",
            "onlyDependOnLibsWithTags": [
              "scope:shared"
            ]
          }
        ]
      }
    ],

Это проходит linting как ожидается при запуске ng lint hep.

Однако, если я отредактирую теги в nx. json, линтер не покажет никаких ошибок. Например, если я изменю nx. json, чтобы он выглядел следующим образом (удаляя теги из библиотек), он все равно будет компоноваться и компоноваться без ошибок.

{
  "npmScope": "patient-engagement",
  "implicitDependencies": {
    "package.json": "*",
    "tsconfig.json": "*",
    "nx.json": "*"
  },
  "projects": {
    "hep": {
      "tags": ["scope:hep", "compatibility:ie10"],
      "implicitDependencies": []
    },
    "mb-ui": {
      "tags": [],
      "implicitDependencies": []
    },
    "utils": {
      "tags": [],
      "implicitDependencies": []
    }
  }
}

Если это полезно, когда я обновляю правила в tslint. json, линтер выдает ошибки, но я хотел бы, чтобы он также подтверждал изменения в nx. json.

Есть ли способ заставить линтер отображать ошибки, когда теги в nx. json обновлены?

Ответы [ 2 ]

1 голос
/ 21 февраля 2020

Это также может быть кеширование кода VS, вызывающее проблемы

Вам может потребоваться перезапустить службу Typescript, прежде чем вносить изменения в tslint. json или tsconfig. json files go through.

ctrl + shift + p and then Typescript: Restart TS Server

0 голосов
/ 19 февраля 2020

Nx кэширует кучу информации о зависимостях в сгенерированном файле: /dist/nxdeps.json

Вы можете просто удалить этот файл, чтобы сразу увидеть изменения в nx. json.

...