Razzle: Memulai aplikasi baru

Dibuat pada 5 Jun 2017  ·  5Komentar  ·  Sumber: jaredpalmer/razzle

Proyek ini terlihat luar biasa. Saya akan membuat proyek baru dan hanya bertanya-tanya antara next.js, create-react-app, dan razzle, apa manfaatnya, atau apa yang terbaik untuk jangka panjang. Saya sangat ingin SSR jadi CRA mungkin tidak mungkin. Saya telah membangun aplikasi dengan next dan kemudian menemukan proyek ini. Mudah-mudahan ini adalah tempat yang baik untuk menanyakan hal ini tetapi hanya ingin mendapatkan beberapa pemikiran tentang apa yang terbaik untuk jangka panjang.

discussion

Komentar yang paling membantu

Terima kasih @kniferrc

Pengalaman serupa membuat saya membuat Razzle.

Sekitar 6 bulan yang lalu, saya memulai aplikasi besar dengan Next.js tepat setelah keluar dan churn terlalu banyak untuk saya tangani. Saya benar-benar mengirimkan PR untuk contoh perutean berparameter (yaitu /user/:id ). Saya ingat bahwa saya kehilangan satu minggu penuh kerja karena beberapa bug aneh yang terkait dengan menembakkan getInitialProps pada perubahan rute . Pada akhirnya, Next.js membuat banyak keputusan yang sangat penting untuk Anda (yaitu perutean, pengambilan data, struktur folder, dan penataan gaya). Apakah ini baik atau buruk sepenuhnya tergantung pada jenis aplikasi yang Anda buat. Ternyata, saya sebenarnya tidak perlu membuat server setiap rute tunggal (hanya seperti 2), saya ingin status pemuatan klien alih-alih memuat ulang halaman penuh, dan saya tidak ingin menghancurkan pohon status global di antara perubahan rute. Itu, ditambah dengan pendapat saya bahwa React-Router 4 adalah yang terbaik sejak irisan roti, berarti Next.js tidak cocok untuk proyek tersebut.

Mencari sesuatu yang lebih stabil, saya pindah ke proyek kyt NYT. Ini cukup untuk sekitar ~2 bulan, tetapi 1) waktu pembuatan menjadi sangat lambat (> 45 detik) saat aplikasi tumbuh, 2) aturan SCSS kyt tidak cocok untuk proyek, dan 3) saya menemukan logging kyt (dengan jumlah emoji yang gila) cukup mengganggu. Jadi saya memutuskan untuk mulai mengerjakan pengganti kyt yang lebih tipis dan lebih cepat, tetapi dengan HMR universal dan API konfigurasi yang mirip dengan Next.js-- create-react-app-ssr , sehingga untuk berbicara.

Setelah semua dikatakan dan dilakukan, saya menyadari bahwa saya telah membuat sistem pembangunan hampir kerangka-agnostik dan bahwa tingkat abstraksi ini lebih cocok untuk kebutuhan proyek saya. Dengan "framework-agnostic," maksud saya Razzle akan 100% bekerja dengan Angular, Vue, Rax, Preact, Inferno, React-XP, RN-Web, Reason-React dan, _yang paling penting bagi saya_, hal gila apa pun yang muncul selanjutnya. IMHO, Kemampuan beradaptasi adalah pembeda utama antara Razzle dan hampir semua hal lain yang pernah saya lihat. Dengan Razzle, Anda dapat membaca tentang sesuatu di posting blog, membuat fork, menambahkan sistem pembangunan babel-transform/webpack config/parallel dan coba saja . Mengapa? Karena tidak seperti Berikutnya, Razzle bukanlah kerangka kerja dan tidak seperti CRA, Razzle memungkinkan Anda menambah konfigurasi yang mendasarinya tanpa memotongnya. Itu luar biasa untuk cara saya belajar, mengajar, bereksperimen, dan berbisnis.

Fleksibilitas dan agnostisisme Razzle telah membuahkan hasil bagi saya dan tim saya:

  • Kami secara bertahap memindahkan aplikasi kami dari sebagian-Aliran ke 100% TypeScript dengan mengubah kurang dari 10 baris kode di razzle.config.js .
  • Tanpa mencoba, Razzle telah menjadi cara tercepat untuk mem-bootstrap proyek ReasonReact (SSR atau SPA).

Adapun masa depan Razzle. Dua hari yang lalu, "menambahkan dukungan SSR ke CRA" disebutkan sebagai ~15 teratas yang harus dilakukan pada peta jalan tim React Core. Jika dukungan SSR ditambahkan ke CRA, Razzle mungkin tidak perlu lagi ada..._dan saya benar-benar keren dengan itu_. Sampai itu terjadi, Razzle akan maju sebagai alat pembuatan kerangka-agnostik untuk JavaScript universal yang dirender server.

Semua 5 komentar

Saya pikir semua orang akan setuju bahwa jawaban yang benar adalah bahwa ini tergantung pada apa yang Anda dan proyek baru Anda butuhkan.

Sejauh yang saya tahu Next.js adalah kerangka kerja lengkap yang dapat digunakan secara opsional sebagai bagian dari ekosistem ZEIT? atau platform?. Sedangkan Razzle jauh lebih minimalis. Jadi itu tidak termasuk fitur yang mungkin tidak Anda perlukan, tetapi juga benar bahwa itu tidak termasuk fitur yang mungkin Anda perlukan atau mungkin Anda perlukan pada akhirnya.

Saya juga telah mempertimbangkan untuk menggunakan Next.js sebelumnya, tetapi ada beberapa detail kecil yang mengganggu saya. Misalnya Next.js tidak mengecilkan output HTML dengan benar (saya tahu ini sama sekali tidak penting, tetapi ini adalah pemecah kesepakatan bagi saya.). Itu juga menggunakan styled-jsx dan CSS-in-JS, tapi saya lebih suka Styled Components . Plus untuk proyek baru saya, saya tidak membutuhkan perutean (belum ).

Akhirnya dan untungnya setelah menguji banyak contoh proyek, saya akhirnya menemukan dan menggunakan Razzle. Sebenarnya saya sudah mulai dengan membuat contoh proyek yang disebut Razzle Material UI Styled Example termasuk beberapa modul dan fitur yang saya butuhkan. Jadi sekarang saya bisa mengerjakan proyek baru saya hampir tanpa malu-malu. Jangan ragu untuk menggunakan repositori yang disebutkan jika Anda memerlukan fitur yang sama atau beberapa di antaranya.

Terima kasih @kniferrc

Pengalaman serupa membuat saya membuat Razzle.

Sekitar 6 bulan yang lalu, saya memulai aplikasi besar dengan Next.js tepat setelah keluar dan churn terlalu banyak untuk saya tangani. Saya benar-benar mengirimkan PR untuk contoh perutean berparameter (yaitu /user/:id ). Saya ingat bahwa saya kehilangan satu minggu penuh kerja karena beberapa bug aneh yang terkait dengan menembakkan getInitialProps pada perubahan rute . Pada akhirnya, Next.js membuat banyak keputusan yang sangat penting untuk Anda (yaitu perutean, pengambilan data, struktur folder, dan penataan gaya). Apakah ini baik atau buruk sepenuhnya tergantung pada jenis aplikasi yang Anda buat. Ternyata, saya sebenarnya tidak perlu membuat server setiap rute tunggal (hanya seperti 2), saya ingin status pemuatan klien alih-alih memuat ulang halaman penuh, dan saya tidak ingin menghancurkan pohon status global di antara perubahan rute. Itu, ditambah dengan pendapat saya bahwa React-Router 4 adalah yang terbaik sejak irisan roti, berarti Next.js tidak cocok untuk proyek tersebut.

Mencari sesuatu yang lebih stabil, saya pindah ke proyek kyt NYT. Ini cukup untuk sekitar ~2 bulan, tetapi 1) waktu pembuatan menjadi sangat lambat (> 45 detik) saat aplikasi tumbuh, 2) aturan SCSS kyt tidak cocok untuk proyek, dan 3) saya menemukan logging kyt (dengan jumlah emoji yang gila) cukup mengganggu. Jadi saya memutuskan untuk mulai mengerjakan pengganti kyt yang lebih tipis dan lebih cepat, tetapi dengan HMR universal dan API konfigurasi yang mirip dengan Next.js-- create-react-app-ssr , sehingga untuk berbicara.

Setelah semua dikatakan dan dilakukan, saya menyadari bahwa saya telah membuat sistem pembangunan hampir kerangka-agnostik dan bahwa tingkat abstraksi ini lebih cocok untuk kebutuhan proyek saya. Dengan "framework-agnostic," maksud saya Razzle akan 100% bekerja dengan Angular, Vue, Rax, Preact, Inferno, React-XP, RN-Web, Reason-React dan, _yang paling penting bagi saya_, hal gila apa pun yang muncul selanjutnya. IMHO, Kemampuan beradaptasi adalah pembeda utama antara Razzle dan hampir semua hal lain yang pernah saya lihat. Dengan Razzle, Anda dapat membaca tentang sesuatu di posting blog, membuat fork, menambahkan sistem pembangunan babel-transform/webpack config/parallel dan coba saja . Mengapa? Karena tidak seperti Berikutnya, Razzle bukanlah kerangka kerja dan tidak seperti CRA, Razzle memungkinkan Anda menambah konfigurasi yang mendasarinya tanpa memotongnya. Itu luar biasa untuk cara saya belajar, mengajar, bereksperimen, dan berbisnis.

Fleksibilitas dan agnostisisme Razzle telah membuahkan hasil bagi saya dan tim saya:

  • Kami secara bertahap memindahkan aplikasi kami dari sebagian-Aliran ke 100% TypeScript dengan mengubah kurang dari 10 baris kode di razzle.config.js .
  • Tanpa mencoba, Razzle telah menjadi cara tercepat untuk mem-bootstrap proyek ReasonReact (SSR atau SPA).

Adapun masa depan Razzle. Dua hari yang lalu, "menambahkan dukungan SSR ke CRA" disebutkan sebagai ~15 teratas yang harus dilakukan pada peta jalan tim React Core. Jika dukungan SSR ditambahkan ke CRA, Razzle mungkin tidak perlu lagi ada..._dan saya benar-benar keren dengan itu_. Sampai itu terjadi, Razzle akan maju sebagai alat pembuatan kerangka-agnostik untuk JavaScript universal yang dirender server.

Wow!! Terima kasih banyak atas balasan yang luar biasa.

Hai Jared, Saya tidak begitu jelas tentang cara menggunakan Razzle untuk mengubah proyek SPA Angular menjadi SSR.
Bisakah Anda memberi saya petunjuk atau panduan tentang cara melakukannya? Terima kasih banyak.

+1 untuk solusi Razzle Angular. https://github.com/jaredpalmer/razzle/issues/1109

Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

charlie632 picture charlie632  ·  4Komentar

corydeppen picture corydeppen  ·  3Komentar

pseudo-su picture pseudo-su  ·  3Komentar

jcblw picture jcblw  ·  4Komentar

piersolenski picture piersolenski  ·  4Komentar