Skip to content

nodutilus/project-config

Repository files navigation

nodutilus project config

Node.js utilities - projects shared configuration

Установка:

$ npm i @nodutilus/project-config --save-dev

Справка:

$ npx nodutilus help

Запустить все проверки:

$ npx nodutilus all

Пример настройки GitHub Actions из nodutilus/project-config:

name: Checks ➜ Tests ➜ Publish

on:
  pull_request:
    branches:
      - main
  push:
    branches:
      - main

jobs:
  main:
    uses: nodutilus/project-actions/.github/workflows/main.yml@main
    with:
      eslint: true
      eslintcc: true
      types: true
      tests: true
      coverage: true
      publish: true
      publish_branche: main
    secrets:
      NPM_TOKEN: ${{ secrets.NPM_TOKEN }}

ESLint

Конфиг для статического анализа модулей в формате ESM при помощи утилиты eslint.

Правила по умолчанию

Настройки

.eslintrc.json:

{
  "extends": "@nodutilus"
}

Использование

Локально

$ npx nodutilus eslint

GitHub Actions

name: Checks
jobs:
  checks:
    steps:
      - uses: npx nodutilus eslint

ESLintCC

Для оценки сложности кода используется модуль: eslintcc. На странице модуля есть описание настроек и критериев оценки.

Для работы модуль использует настройки ESLint текущего проекта.

Использование

Локально

$ npx nodutilus eslintcc

GitHub Actions

name: Checks
jobs:
  checks:
    steps:
      - uses: npx nodutilus eslintcc

Type Checking JavaScript

Проверка типов в коде написанном на JavaScript при помощи TypeScript

Подробнее о проверке типов в см. статье: JS Projects Utilizing TypeScript

Настройки

tsconfig.json:

{
  "extends": "@nodutilus/project-config/tsconfig"
}

Использование

Локально

$ npx nodutilus ts-check

GitHub Actions

name: Checks
jobs:
  checks:
    steps:
      - uses: npx nodutilus ts-check

Run tests

Для запуска тестов используется команда node test или npm run test (если настроен скрипт в package.json). Так же можно настроить пред- и пост- обработчик запуска тестов скриптами npm run pre-test и npm run post-test

Настройки

package.json:

{
  "scripts": {
    "pre-test": "node test/pre-test",
    "test": "node test/index",
    "post-test": "node test/post-test"
  }
}

Использование

Локально

$ npx nodutilus test

GitHub Actions

name: Tests
jobs:
  tests:
    steps:
      - uses: npx nodutilus test

Code coverage with c8

Покрытие кода с использованием встроенных функций Node.js. Для настройки используется конфигурация nyc

Для оценки покрытия запускается сценарии аналогичные описанным в разделе Run tests (Покрытие оценивается только для сценария запуска тестов)

Настройки

.nycrc.json:

{
  "extends": "@nodutilus/project-config/nyc"
}

Использование

Локально

$ npx nodutilus c8

GitHub Actions

name: Coverage
jobs:
  coverage:
    steps:
      - uses: npx nodutilus c8