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

В корне моего рабочего пространства Nx, когда я запускаю команду ng g lib my-lib он генерирует сервис под названием MyLibService в myLib/src/libs папка в корне моего рабочего пространства. Я ожидаю, что это создаст новую библиотеку внутри папки 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 не изменяется.

Я продолжаю копаться в этом.

1 ответ

Решение

Решаемые. Я сбросил все версии пакета в моем реальном рабочем пространстве package.json к версии от package.json это сработало (как правило, Angular 6.0.1). Вычистил мой node_modules папка и побежал пряжи. Все работает сейчас.

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

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

Другие вопросы по тегам