✨ This workspace has been generated by NX ✨
В проекте используется формат переноса строки для Unix-систем - LF.
Этот формат, наиболее вероятно, будет у вас на реальной работе.
CRLF который используется в Windows следует переформатироввть при клонированием проекта.
В связи с этим перед клонированием следует ввести в терминал команду git config --global core.autocrlf input
input опция не будет делать преобразование формата при клонировании любых проектов. Так вы избежите ошибок Eslint.
Склонируйте проект и запустите npm start для разработки.
Проект откроется автоматически (http://localhost:4200/).
Наиболее вероятно на вашей будущей работе будут правила по написанию и форматированию кода.
Мы используем Eslint и Prettier.
Рекомендуется сразу включить авто-форматирование (Actions on Save) и обращать внимание на подсказки.
Также для вашего удобства рекомендуем включить Optimize imports. Так ваша IDE будет автоматически удалять неиспользуемые импорты. Скажем нет ручной работе!
Если мощности вашего оборудования недостаточно или вы не хотите следить за этим во время разработки -
игнорируйте ошибки до момента отправки вашего кода в репозиторий.
Перед отправкой следует выполнить команду npm run lint:fix (она находится в package.json) и исправить ошибки, которые остались после выполнения команды.
Pull Request в котором Eslint завершается ошибкой (мы подключили его в Github Actions) - проверяться не будет.
Так мы сможем проверить ваш код, а не спорить о форматировании. Спасибо за понимание!
В проекте используется модульная архитектура (где под модулями мы подразумеваем библиотеки NX) с использованием DDD.
Используйте NX консоль для генерации библиотек и их наполнения.
- Библиотеки располагаются в своей доменной области и группируются по типам библиотек
- Названия библиотек формируются по шаблону
{type}-{use}, например:
| Данные, логика | Функциональность | Глупые компоненты | Вспомогательные инструменты |
|---|---|---|---|
data-access/... |
features/... |
ui/... |
utils/... |
data-access-folders |
feature-users |
ui-profile-photo |
util-theme |
data-access-materials |
feature-materials |
ui-profile-change |
util-language |
data-access-user-dialog |
feature-user-dialog |
ui-password-change |
util-typescript |
- Задайте
aliasдля вашей библиотеки с помощьюimportPathопцииNX Console, по шаблону{scope}/{domain}/{lib}, например:@core/data-access-interceptors@shared/util-store@users/shared/data-access-models@users/materials/feature-materials@users/materials/data-access-materials
В корне библиотеки (src/lib/...) сгруппируйте сущности в одноимённые директории, например для библиотеки @users/users/feature-users:
| pages/ | components/ | services/ | interfaces/ | enums/ |
|---|---|---|---|---|
users-page.component |
.../user-list.component |
users.service |
user-vm.interface |
view-mode.enum |
profile-page.component |
.../user-card.component |
layout.service |
profile.interface |
|
.../profile-photo.component |
profile-photo.service |
Run nx graph to see a diagram of the dependencies of the projects.