Proyek ini adalah klon dari Hacker News yang ditulis ulang dengan Universal JavaScript, menggunakan React dan GraphQL. Ini dimaksudkan untuk menjadi contoh atau boilerplate untuk membantu Anda menyusun proyek Anda menggunakan teknologi yang siap-produksi.

Demo langsung
React - (UI Framework)
GraphQL - (Web Data API)
Apollo - (GraphQL Client/Server)
Berikutnya - (Routing, SSR, Hot Module Reloading, Pemisahan Kode, Build Tool Menggunakan Webpack)
Naskah - (tipe statis)
Webpack - (Modul Bundler)
PostCSS - (Pemrosesan CSS)
Node.js - (server web)
Express - (Web App Server)
Paspor - (otentikasi)
Eslint - (pengkodean praktik terbaik/penyorotan kode)
Jest - (Tes)
Docker - (Penyebaran Kontainer)
Opsional - Manajer paket benang atau PNPM - (dependensi yang lebih baik)
Ujung depan
react )typescript )@apollo/client )next )Server
node & express )apollo-server )apollo-server-express )apollo-server-express )apollo-server-express )passport )next )next )next )docker )Dev/tes
next )jest )apollo-server-express )pnpm / yarn )eslint )
server.ts adalah titik masuk. Ini menggunakan permintaan Express dan meneruskan berikutnya. SSR berikutnya membuat halaman menggunakan getServerSideProps() dari Apollo Helper. Oleh karena itu aplikasi membuat permintaan GraphQL pada klien atau server.
Ketika klien memuat halaman itu preloads kode halaman berikutnya dari <Link href="/"> . Ketika klien menavigasi ke halaman berikutnya, ia hanya perlu membuat satu permintaan graphql untuk diterjemahkan. Besar!
Lihat lebih lanjut: Next.js, klien Apollo GraphQL
GraphQL: graphql-tools oleh apollo atau graphql docs
Setiap halaman web memiliki komponen bereaksi di pages . Kode server ada di server . Kode bersama yang berjalan pada klien atau server ada di src . Jangan mengimpor dari server atau pages di src untuk menghindari menjalankan kode di lingkungan yang salah.
Root proyek berisi file konfigurasi seperti TypeScript, Babel, Eslint, Docker, Flow, NPM, YARN, GIT.
Anda dapat mengunduh dan menjalankan repo dengan satu perintah untuk memerintah semuanya:
git clone https://github.com/clintonwoo/hackernews-react-graphql.git && cd hackernews-react-graphql && npm install && npm start
Menjalankan aplikasi dalam mode dev sepenuhnya ditampilkan termasuk pemuatan ulang modul panas :
npm install
npm start
Untuk berjalan dalam mode produksi:
npm run build:prod && npm run start:prod
Proyek kehabisan kotak dengan pengaturan default ( /src/config.ts ). Anda dapat menyertakan file .env di root proyek Anda untuk mengonfigurasi pengaturan (ini adalah paket NPM ' dotenv '). File .env termasuk dalam .gitignore .
npm test
Proyek ini menggunakan JEST dan dapat melakukan pengujian snapshot dari komponen React. Setiap kali komponen diubah, harap perbarui snapshot menggunakan npm test -- -u atau npx jest --updateSnapshot .
npm run build:prod : NextJS App dengan Entry Point server.ts yang menggunakan Node.js/Express. Menggunakan kompiler naskah untuk mentranspile proyek SRC untuk membangun.
ATAU
npm run build-docker Docker Container: Membangun wadah Docker menggunakan DockerFile.
NextJS memungkinkan kami membuat situs web statis yang kuat tetapi Anda perlu mempertimbangkan jika Anda memerlukan rendering sisi server.
npm run build-static-website : Membangun Situs Web Statis untuk /build/static . Gunakan server web statis misalnya. Halaman nginx/github.
Permintaan tarik dipersilakan. Ajukan masalah untuk ide, percakapan, atau umpan balik.
Setelah Anda ★ Bintang proyek ini, ikuti @clintondannolfo di Twitter.