Это наш репозиторий клиента. Он содержит приложение React.js для Kitsu.
Проверьте инструменты, мобильные, серверные и API Docs Repositories.
Тот факт, что вы читаете это, вероятно, означает, что вы заинтересованы в участии в веб -приложении Kitsu. Если так, добро пожаловать! Довольно легко начать, и мы здесь, чтобы помочь вам до конца. Если у вас есть какие -либо вопросы, пожалуйста, не стесняйтесь спрашивать нас о нашем разногласий в канале #DEV!
Прежде чем сделать запрос на привлечение, прочитайте StyleGuide и убедитесь, что вы сохраняете кодовую базу чистой и последовательной для будущих разработчиков.
Вам понадобится довольно современная версия Node.js. Active LTS, вероятно, является лучшим вариантом, если вы не уверены. Наши развертывания будут использовать Active LTS, но мы стараемся гарантировать, что все работает и в текущей версии.
После того, как у вас есть узел, запустите следующее:
npm install (устанавливает зависимости)npm run dev (порт по умолчанию 3000) Теперь посетите http://localhost:3000 , и вы должны увидеть приложение Kitsu!
По умолчанию, в режиме разработки, это будет подключаться к
staging.kitsu.io(наша среда предварительного производства) для API, что означает, что все, что вы делаете, будет уничтожено еженедельно. Вы можете изменить это для подключения к производству, если это необходимо, установивVITE_API_HOST=https://kitsu.io/в файле.env. Обычно это не обязательно, но есть некоторые вещи, которые не работают полностью при постановке.В будущем мы планируем лучше интегрировать это в среду Dev Kitsu-Tools лучше.
Хотя основная структура проекта должна быть знакома большинству разработчиков, которые использовали React и Vite в прошлом, Kitsu является крупным применением и имеет больше структуры, чем вы можете привыкнуть.
VITE собирает приложение, начинающееся в «точке входа». В нашем случае у нас есть четыре, в трех «целях строительства»:
BUILD_TARGET=client - главное веб -приложение Kitsu (V4)index.html - основная точка входа для веб -приложения Kitsuoauth2-callback.html -точка входа для обработчика обратного обращения из поставщика OAuth2 (в основном просто делегатов в нашу библиотеку Nanoauth).BUILD_TARGET=server -версия веб-приложения на стороне сервераserver.js - основная точка входа для веб -приложения KitsuBUILD_TARGET=library - библиотека компонентов из веб -приложения Kitsu (V4) для выставки для приложения V3 Ember во время миграции.src/entry-ember.tsx -экспорт, который будет доступен из приложения Ember src/assets/ - Статические активы, такие как значки, иллюстрации и анимации, импортируемые приложением. Они не просто скопированы в выходной каталог, они должны быть импортированы и могут обрабатываться во время компиляции с различными плагинами.src/components/ - Общие, многоразовые компонентыsrc/pages/ - Компоненты, выполняющие целую страницуsrc/layouts/ - Компоненты, обеспечивающие повторную структуру страницыsrc/contexts/ - React Contexts для совместного использования между компонентамиsrc/initializers/ - Императивный код, который работает во время загрузки приложений (избегайте их, если возможно, предпочитают крючки в компоненте приложения)src/constants/config.ts - разоблачение конфигурации приложению во время выполненияsrc/graphql/ - Код поддержки GraphQL, такой как сгенерированные типы схемы, скаляры и обмены URQL.src/hooks/ - Пользовательские крючки React для приложенияsrc/locales/ -Данные для каждой локали, которую мы поддерживаем (переводы, Date-fn Locales и т. Д.)src/errors/ - все наши подклассы ошибокsrc/styles/ -стили всего приложения (не специфичные для компонента), в основном в виде переменных, которые используются в стилях компонентов. npm run codegen Если вы измените файл .gql или добавите новый ключ перевода, вам нужно будет запустить npm run codegen чтобы они работали должным образом. GraphQL CodeGen будет генерировать файлы TypeScript для каждого запроса, а Intl CodeGen извлекает все клавиши перевода из ваших компонентов.
npm run storybookМы используем сборник рассказов для документирования компонентов. Мы просим вас документировать любые новые компоненты, которые вы добавляете.
npm run test:unit # Runs unit tests (vitest)
npm run test:unit:watch # Opens vitest in watch mode
npm run test:e2e # Runs e2e tests (cypress)У нас есть два тестовых люкса:
.test.ts(x)cypress/В большинстве случаев мы рекомендуем проверить ваш код с помощью Vitest. Это гораздо более приятный опыт, и он работает быстрее. Тем не менее, иногда вам нужно проверить полный рабочий процесс от сквозного, для чего есть кипарис.
Мы используем Crowdin для обработки переводов, отправляемся на Crowdin.com/project/kitsu-web, чтобы предложить изменения или добавить новые переводы.
Переводы Используйте формат синтаксиса сообщений ICU. Прочитайте синтаксисную документацию.
Хотите создать проблему? Откройте отчет об ошибке или запрос функции на Kitsu.