Ini adalah repositori klien kami. Ini berisi aplikasi react.js untuk kitsu.
Lihatlah repositori alat, seluler, server, dan dokumen API.
Fakta bahwa Anda membaca ini mungkin berarti Anda tertarik untuk berkontribusi pada aplikasi web Kitsu. Jika demikian, selamat datang! Sangat mudah untuk memulai, dan kami di sini untuk membantu Anda sepanjang jalan. Jika Anda memiliki pertanyaan, jangan ragu untuk bertanya kepada kami di perselisihan kami di saluran #DEV!
Sebelum Anda membuat permintaan tarik, silakan baca styleGuide dan pastikan Anda menjaga basis kode tetap bersih dan konsisten untuk pengembang di masa depan.
Anda akan membutuhkan versi node.js yang cukup modern. LTS aktif mungkin merupakan pilihan terbaik jika Anda tidak yakin. Penyebaran kami akan menggunakan LTS aktif, tetapi kami mencoba memastikan bahwa semuanya berjalan dengan lancar pada versi saat ini juga.
Setelah Anda memiliki Node, jalankan yang berikut:
npm install (instalasi dependensi)npm run dev (port default 3000) Sekarang kunjungi http://localhost:3000 dan Anda akan melihat aplikasi kitsu!
Secara default, dalam mode pengembangan, ini akan terhubung ke
staging.kitsu.io(lingkungan pra-produksi kami) untuk API, yang berarti apa pun yang Anda lakukan akan dimusnahkan setiap minggu. Anda dapat mengubah ini untuk terhubung ke produksi jika perlu dengan mengaturVITE_API_HOST=https://kitsu.io/di file.env. Ini umumnya tidak perlu, tetapi ada beberapa hal yang tidak bekerja sepenuhnya dalam pementasan.Di masa depan kami berencana untuk mengintegrasikan ini ke dalam lingkungan kitsu-tools dev lebih baik.
Sementara struktur proyek dasar harus akrab bagi sebagian besar pengembang yang telah menggunakan bereaksi dan vite di masa lalu, Kitsu adalah aplikasi yang besar dan memiliki lebih banyak struktur daripada yang mungkin biasa Anda lakukan.
Vite mengkompilasi aplikasi mulai dari "titik masuk". Dalam kasus kami, kami memiliki empat, di tiga "target pembangunan":
BUILD_TARGET=client - Aplikasi Web Kitsu Utama (V4)index.html - Titik masuk utama untuk aplikasi web Kitsuoauth2-callback.html -Titik masuk untuk penangan callback dari penyedia OAuth2 (kebanyakan hanya delegasi ke perpustakaan nanoauth kami).BUILD_TARGET=server -Server-Side Version dari Aplikasi Web KITSUserver.js - Titik Masuk Utama untuk Aplikasi Web KitsuBUILD_TARGET=library - Perpustakaan komponen dari aplikasi web Kitsu (v4) untuk mengekspos untuk aplikasi V3 Ember selama migrasi.src/entry-ember.tsx -Ekspor yang akan dapat diakses dari Aplikasi Ember src/assets/ - Aset statis seperti ikon, ilustrasi, dan animasi yang diimpor oleh aplikasi. Ini tidak hanya disalin ke direktori output, ini harus diimpor dan dapat diproses selama kompilasi dengan berbagai plugin.src/components/ - Komponen Umum dan Dapat Digunakan kembalisrc/pages/ - Komponen Rendering seluruh halamansrc/layouts/ - Komponen yang menyediakan struktur halaman yang dapat digunakan kembalisrc/contexts/ - Bereaksi konteks untuk berbagi keadaan antar komponensrc/initializers/ - Kode Imperatif yang berjalan selama Boot Aplikasi (hindari ini jika memungkinkan, lebih suka kait dalam komponen aplikasi)src/constants/config.ts - Mengekspos Konfigurasi ke Aplikasi Saat Runtimesrc/graphql/ - Kode Dukungan GraphQL, seperti jenis skema yang dihasilkan, skalar, dan pertukaran URQL.src/hooks/ - Kait reaksi khusus untuk aplikasisrc/locales/ -Data untuk setiap lokal yang kami dukung (terjemahan, tanggal-FN lokal, dll.)src/errors/ - Semua subkelas kesalahan kamisrc/styles/ -Gaya aplikasi-lebar (tidak spesifik untuk komponen), sebagian besar dalam bentuk variabel yang digunakan dalam gaya komponen. npm run codegen Jika Anda mengubah file .gql atau menambahkan kunci terjemahan baru, Anda harus menjalankan npm run codegen agar mereka berfungsi dengan baik. Codegen GraphQL akan menghasilkan file TypeScript untuk setiap kueri dan INTL Codegen akan mengekstrak semua kunci terjemahan dari komponen Anda.
npm run storybookKami menggunakan buku cerita untuk mendokumentasikan komponen. Kami meminta Anda, silakan mendokumentasikan komponen baru yang Anda tambahkan.
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)Kami memiliki dua suite tes:
.test.ts(x)cypress/Sebagian besar waktu, kami sarankan menguji kode Anda dengan Vitest. Ini pengalaman yang jauh lebih baik, dan berjalan lebih cepat. Yang mengatakan, kadang-kadang Anda perlu menguji alur kerja penuh dari ujung ke ujung, untuk tujuan Cypress.
Kami menggunakan Crowdin untuk menangani terjemahan, pergi ke crowdin.com/project/kitsu-web untuk menyarankan perubahan atau menambahkan terjemahan baru.
Terjemahan Gunakan format sintaks pesan ICU. Baca dokumentasi sintaksis.
Ingin membuat masalah? Buka laporan bug atau permintaan fitur di Kitsu.