Как создать проект Node.js с нуля с помощью хороших практик?


Привет, разработчики!

Как создать свой проект Node.js? Что важно организовать, чтобы освоить? Итак, давайте посмотрим, что необходимо для создания вашего начального проекта, качества кода, управляемости и масштабируемости

Спойлер: В конце есть github boilerplate repo со всеми конфигурациями.


Поехали!

Базовый

Создание нашего package.json для управления пакетами.

Git alias
Это классная штука, которую можно использовать для оптимизации коммитов, ведь всегда нужно добавлять и коммитить? Так почему бы не автоматизировать это одной командой вместо двух? Красивое форматирование псевдонимов Git тоже может помочь нам лучше отобразить вывод консоли git.

Посмотрите здесь мой gist для обработки всех псевдонимов таким образом.

Обычный линтер коммитов

Вот git linter, заставляющий нас использовать шаблон Conventional Commits

fix
feature
docs
chore
tests
style
refactor
Вход в полноэкранный режим Выйти из полноэкранного режима

Git
После запуска git init уже добавьте .gitignore и туда папки, как:

node_modules
dist
coverage
Войти в полноэкранный режим Выйти из полноэкранного режима

Хаски и lintStaged для качества кода
Ниже приведена конфигурация .lintstagedrc.json, которую нужно добавить в корневую папку проекта. Она гарантирует, что коммит будет сделан непосредственно перед исправлением всех проблем с линтами, и все тесты будут в порядке.

{
    "*.ts": [
        "eslint 'src/**' --fix",
        "npm run test:staged"
        "git add"
    ]
}
Вход в полноэкранный режим Выйти из полноэкранного режима

И здесь .huskyrc.json, чтобы гарантировать работу esling перед фиксацией:

{
    "hooks":{
        "pre-commit": "eslint"
    }
}
Войти в полноэкранный режим Выход из полноэкранного режима

Стандартный стиль Javascript и eslint
Нам нужно знать о стандартном JS, просто используйте eslint, если у вас только Javascript файлы, но если вы используете Typescript, вы можете использовать и плагин ESlint на VSCode.

Настройка скриптов в файле package.json
Вы можете настроить свои скрипты и уже все готово к использованию.

  "scripts": {
    "lint": "npx eslint .",
    "test": "jest"
  },
Вход в полноэкранный режим Выход из полноэкранного режима

Тестирование библиотеки
При необходимости установите Jest или Mocha, chain, sinon для модульных тестов. Frisby для интеграции тестов и Cypress для End2End тестов.

Docker
Конечно, вам нужно добавить docker-compose.yml с вашей инфраструктурой (база данных и другие сервисы).

version: '3.1'

services:

  mongo:
    image: mongo
    restart: always
    environment:
      MONGO_INITDB_ROOT_USERNAME: root
      MONGO_INITDB_ROOT_PASSWORD: example

  mongo-express:
    image: mongo-express
    restart: always
    ports:
      - 8081:8081
    environment:
      ME_CONFIG_MONGODB_ADMINUSERNAME: root
      ME_CONFIG_MONGODB_ADMINPASSWORD: example
      ME_CONFIG_MONGODB_URL: mongodb://root:example@mongo:27017/
Вход в полноэкранный режим Выход из полноэкранного режима

Архитектура программного обеспечения
Если вы собираетесь использовать DDD + Clean Architecture, вы можете создать папки с их иерархией.

Получить всю статью можно здесь
Полный шаблон со всеми конфигурациями
Ссылка: https://github.com/luizcalaca/node-typescript-boilerplate-configuration

Контакты
https://www.buymeacoffee.com/calaca

Оцените статью
devanswers.ru
Добавить комментарий