Фреймворк

Особенности вклада в репозиторий фреймворка.

После прочтения общего руководства по внесению вклада учтите следующие особенности репозитория nuxt/nuxt.

Путеводитель по монорепозиторию

  • packages/kit: Инструментарий для создания модулей Nuxt, опубликованный как @nuxt/kit.
  • packages/nuxt: Ядро Nuxt, опубликованное как nuxt.
  • packages/schema: кросс-версионная типизация и настройки по умолчанию Nuxt, опубликованы как @nuxt/schema.
  • packages/rspack: сборщик Rspack для Nuxt, публикуется как @nuxt/rspack-builder.
  • packages/vite: Пакет Vite для Nuxt, опубликованный как @nuxt/vite-builder.
  • packages/webpack: Пакет webpack для Nuxt 3, опубликованный как @nuxt/webpack-builder.

Настройка

Чтобы внести свой вклад в Nuxt, вам нужно установить локальное окружение.

  1. Сделайте форк репозитория nuxt/nuxt в свой аккаунт на GitHub, затем клонируйте его на машину.
  2. Установите актуальную версию Node.js (20.x).
  3. Включите Corepack, чтобы иметь pnpm и yarn.
    Терминал
    corepack enable
    
  4. Запустите pnpm install --frozen-lockfile для установки зависимостей с помощью pnpm:
    Терминал
    pnpm install --frozen-lockfile
    
    Если вы добавляете зависимость, пожалуйста, используйте pnpm add.
    Файл pnpm-lock.yaml является источником истины для всех зависимостей Nuxt.
  5. Подготовьте локальное окружение для разработки:
    Терминал
    pnpm dev:prepare
    
  6. Сделайте ветку, в которой вы можете работать, и зафиксируйте свои изменения:
    Терминал
    git checkout -b my-new-branch
    

Затем проверьте изменения в песочнице playground и через тесты перед тем как открыть PR (запрос на слияние).

Песочница (playground) {#playground}

Во время работы над PR вы, вероятно, захотите проверить, правильно ли работают ваши изменения.

Вы можете изменить пример приложения в playground/ и запустить его:

Терминал
pnpm dev
Не коммитьте изменения в playground/ в ветку PR. Лучше приложите пример кода в описание запроса на слияние — так ревьюерам и другим участникам проще понять суть изменений.

Тестирование

У каждой новой возможности по возможности должен быть юнит-тест. Каталог test/ ещё развивается — ориентируйтесь на уже существующие тесты.

Прежде чем создавать PR или помечать его готовым к рассмотрению, убедитесь, что все тесты пройдены:

Терминал
pnpm test

Линтинг

Вы, наверное, уже заметили, что мы используем ESLint для соблюдения стандартов по написанию кода.

Перед коммитом изменений, чтобы убедиться в правильности стиля кода, выполните команду:

Терминал
pnpm lint
Вы можете использовать pnpm lint --fix, чтобы исправить большинство изменений стиля.
Если ошибки остались, их нужно исправить вручную.

Документация

Новая возможность, рефакторинг или смена поведения Nuxt обычно требуют правок в документации — включайте их в тот же PR. Документацию можно донести не в первом коммите, но к зрелому состоянию PR она должна быть.

Обязательно внесите изменения в соответствии с руководством по стилю документации.

Итоговый чек-лист

В форме PR есть шаблон — заполните его и отметьте пункты в чек-листах, которые к вам относятся.

Руководство по документации

Если вы заметили область, в которой мы можем улучшить документацию или сообщения об ошибках, пожалуйста, откройте PR — даже если это просто исправление опечатки!

Обязательно внесите изменения в соответствии с руководством по стилю документации.

Быстрые исправления

Если вы заметили опечатку или хотите перефразировать предложение, нажмите ссылку Редактировать эту страницу, расположенную справа в разделе Сообщество.

Внесите правки в интерфейсе GitHub и откройте запрос на слияние.

Исправления подольше

Документация находится в каталоге docs/ репозитория nuxt/nuxt и написана в формате Markdown.

Чтобы просмотреть документы локально, следуйте инструкциям в репозитории nuxt/nuxt.com.
Мы рекомендуем вам установить расширение MDC для VS Code.

Линтинг документации

Документация линтится с помощью MarkdownLint и case police для поддержания целостности документации.

Терминал
pnpm lint:docs
Также можно запустить pnpm lint:docs:fix, чтобы найти и по возможности автоматически исправить замечания линтера.

Отправьте PR

Убедитесь, что название вашего PR соответствует рекомендациям Conventional Commits.

Пример заголовка PR
docs: обновить раздел про файл nuxt.config.ts