Nrwl Nx генерирует сервис вместо lib?

Когда я запускаю команду ng g lib my-lib в корне моей рабочей области Nx, она создает службу с именем MyLibService в папке myLib/src/libs в корне моей рабочей области. Я ожидал, что он создаст новую lib внутри папки libs (libs/my-lib/src). (Раньше это было до того, как я обновился до v6.)

Кроме того, ничего не добавляется в мой angular.json файл после создания службы.

Итак, по крайней мере три вещи идут не так:

  1. Путь, по которому создается артефакт, неверен.
  2. Он генерирует service вместо lib
  3. В angular.json ничего не записывается

Что я делаю неправильно?

Спасибо.

Обновление №1

Я создал новое тестовое рабочее пространство, добавил приложение и добавил к нему библиотеку, используя ту же команду, что и выше. Все работало, как ожидалось, поэтому я думаю, что это означает, что моя среда (пакеты и т. Д.) Верна. Я сравнил файлы angular.json для фиктивного рабочего пространства и моего реального рабочего пространства и обнаружил, что в моем реальном рабочем пространстве отсутствует одна запись, которая кажется актуальной: "defaultCollection": "@nrwl/schematics".

Я добавил эту запись, и теперь, когда я пытаюсь создать библиотеку, она сидит там 10-15 секунд, а затем сообщает:

ERROR! test2/karma.conf.js does not exist..
ERROR! test2/ng-package.json does not exist..
ERROR! test2/ng-package.prod.json does not exist..
ERROR! test2/package.json does not exist..
ERROR! test2/tsconfig.lib.json does not exist..
ERROR! test2/tsconfig.spec.json does not exist..
ERROR! test2/tslint.json does not exist..
ERROR! test2/src/test.ts does not exist..
ERROR! test2/src/index.ts does not exist..
ERROR! test2/src/lib/test2.component.ts does not exist..
ERROR! test2/src/lib/test2.module.ts does not exist..
ERROR! libs/test2/src/lib/test2.module.ts does not exist..
ERROR! libs/test2/src/index.ts does not exist..
ERROR! libs/test2/tsconfig.lib.json does not exist..
ERROR! libs/test2/tsconfig.spec.json does not exist..
ERROR! libs/test2/tslint.json does not exist..
ERROR! libs/test2/karma.conf.js does not exist..
The Schematic workflow failed. See above.

test2 - это имя библиотеки, которую я пытался создать.

Теперь нигде ничего не создается, и мой angular.json не изменяется.

Я продолжаю вникать в это.


person TimTheEnchanter    schedule 29.07.2018    source источник


Ответы (1)


Решено. Я сбросил все версии пакетов в моем реальном рабочем пространстве package.json на версию из package.json, которая работала (обычно Angular 6.0.1). Очистил папку node_modules и запустил пряжу. Теперь все работает.

По несвязанной проблеме с репозиторием Nrwl / Nx GitHub Виктор Савкин прокомментировал, что Angular 6.1 не будет поддерживаться до Nx 6.2.

Извлеченный урок: не всегда обновляйтесь до последней версии ... подождите немного и оставайтесь на пару оборотов позже, если у вас нет особой причины для обновления!

person TimTheEnchanter    schedule 29.07.2018