Nrwl Nx генерирует сервис вместо lib?
В корне моего рабочего пространства Nx, когда я запускаю команду ng g lib my-lib
он генерирует сервис под названием MyLibService
в myLib/src/libs
папка в корне моего рабочего пространства. Я ожидаю, что это создаст новую библиотеку внутри папки libs (libs/my-lib/src
). (Раньше это делалось до того, как я обновился до v6.)
- Угловой 6.1.0
- NRWL Nx 6.1.1
- Angular CLI 6.1.0-rc.0 (прикреплен к этому, чтобы избежать https://github.com/nrwl/nx/issues/640)
Кроме того, ничего не добавлено в мой angular.json
файл после создания сервиса.
Так что по крайней мере три вещи идут не так, как надо:
- Путь, где создается артефакт, неверен.
- Это порождает
service
вместоlib
- Ничего не записывается в
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.
Извлеченный урок: не всегда обновляйтесь до последней версии вещей... подождите немного и оставьте одну или две обороты позади, если у вас нет особой причины для обновления!