Фреймворк

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

После общего гайда по контрибуции — несколько конкретных моментов про контрибуцию в репозиторий 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, публикуется как @nuxt/webpack-builder.

Настройка

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

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

Затем проверьте изменения в playground и тестах перед отправкой PR.

Playground

При работе над PR удобно проверять изменения на примере приложения.

Можно править пример в playground/ и запускать:

Terminal
pnpm dev
В ветку коммитить изменения playground не нужно, но можно добавить пример кода в описание PR — это поможет ревьюерам и пользователям Nuxt понять фичу.

Тесты

У каждой новой фичи по возможности должен быть юнит-тест. Директория test/ в репозитории в процессе развития; по возможности добавляйте тесты по аналогии с существующими.

Перед созданием PR или пометкой «ready to review» убедитесь, что все тесты проходят:

Terminal
pnpm test

Линтинг

Мы используем ESLint для единого стиля кода.

Перед коммитом проверьте стиль:

Terminal
pnpm lint
Можно запустить pnpm lint --fix для автоматического исправления большинства замечаний.
Оставшиеся ошибки нужно исправить вручную.

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

При добавлении фичи, рефакторинге или изменении поведения Nuxt стоит обновить документацию. Включайте правки docs в тот же PR (не обязательно в первом коммите, но до созревания PR).

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

Чек-лист перед отправкой

При отправке PR нужно заполнить шаблон и отметить подходящие пункты в чек-листах.

Гайд по документации

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

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

Быстрые правки

При опечатке или желании переформулировать фразу можно нажать Edit this page в боковой панели справа в разделе Community.

Внесите правку прямо в интерфейсе GitHub и откройте Pull Request.

Объёмные правки

Контент документации лежит в директории docs/ репозитория nuxt/nuxt и написан в markdown.

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

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

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

Terminal
pnpm lint:docs
Можно запустить pnpm lint:docs:fix для подсветки и исправления замечаний линтера.

Открытие PR

Заголовок PR должен соответствовать conventional commits.

Пример заголовка PR
docs: update the section about the nuxt.config.ts file