Skip to main content

Начало работы

Создание нового приложения

Команды для создания пустого приложения NestJS-mod

# Создание пустого nx проекта
npx --yes create-nx-workspace@20.3.0 --name=project-name --preset=apps --interactive=false --ci=skip

# Переход в созданный проект
cd project-name

# Установка всех необходимых основных dev-зависимостей
npm install --save-dev @nestjs-mod/schematics@latest

# Создание приложения NestJS-mod
./node_modules/.bin/nx g @nestjs-mod/schematics:application --directory=apps/app-name --name=app-name --projectNameAndRootFormat=as-provided --strict=true

Запуск созданного приложения

# Подготовка всех файлов
npm run manual:prepare

# Запуск приложения в режиме разработки
npm run serve:dev:app-name

# Сборка и запуск приложения в продакшн режиме

## Сборка
npm run build:prod:app-name

## Запуск
npm run start:prod:app-name

Создание новой библиотеки

Команды для создания пустой библиотеки NestJS-mod

# Создание библиотеки NestJS-mod
./node_modules/.bin/nx g @nestjs-mod/schematics:library --name=feature-name --buildable --publishable --directory=libs/feature-name --simpleName=true --strict=true --linter=eslint --unitTestRunner=jest

Добавление созданной библиотеки в apps/app-name/src/main.ts


// Пример без опций
bootstrapNestApplication({
...
modules: {
feature: [FeatureName.forRoot()],
}
});

// Пример с опциями
bootstrapNestApplication({
...
modules: {
feature: [FeatureName.forRoot({
configuration: { optionsName: 'options name' },
})],
}
});


// По умолчанию в примере приложение ищет env по ключу `APP_NAME_ENV_NAME`, но вы можете переопределить его, например:
bootstrapNestApplication({
...
modules: {
feature: [FeatureName.forRoot({
environments: { envName: 'env name' },
})],
}
});

Создание отчета об инфраструктуре

Вы можете сгенерировать отчет для всех модулей и их конфигураций.

# Сборка всех приложений и библиотек
npm run build

# Генерация отчета в формате markdown
npm run docs:infrastructure

После этого файл INFRASTRUCTURE.MD появится в папке приложения apps/app-name.