0Pricing
React Academy · Pelajaran

Membundel dengan Rollup dan tsup untuk Pustaka

Konfigurasikan Rollup atau tsup untuk membundel komponen React dengan eksternalisasi React dan ReactDOM yang tepat.

Membundel dengan Rollup dan tsup untuk Pustaka adalah pelajaran React Academy gratis di CoddyKit. Ini adalah pelajaran 1 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar React Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus React Academy mencakup 4 pelajaran total.

Mengapa Tidak Menggunakan Vite untuk Pustaka

Konfigurasi bawaan Vite dioptimalkan untuk aplikasi—memaketkan semuanya, menangani aset, dan menghasilkan index.html. Untuk pustaka komponen, Anda memerlukan keluaran yang berbeda: berkas JavaScript ESM/CJS murni tanpa beban waktu proses, tanpa React yang dipaketkan, serta deklarasi TypeScript yang tepat. Mode pustaka Vite dapat digunakan, tetapi Rollup dan tsup lebih khusus untuk kebutuhan ini.

Rollup: Standar Pustaka

Rollup telah menjadi pemaket standar untuk pustaka JavaScript selama bertahun-tahun. Rollup menghasilkan keluaran yang bersih dan efisien dengan penghapusan kode yang sangat baik, serta mendukung format keluaran ESM dan CJS. Pengangkatan cakupan milik Rollup menghilangkan beban pembungkus modul, sehingga menghasilkan paket pustaka sekecil mungkin.

tsup: Alternatif Tanpa Konfigurasi

tsup adalah pemaket TypeScript tanpa konfigurasi yang didukung oleh esbuild. tsup jauh lebih cepat daripada Rollup—esbuild mengompilasi dalam hitungan mikrodetik, bukan milidetik. Konfigurasi minimalnya: { entry: ['src/index.ts'], format: ['esm', 'cjs'], dts: true } secara otomatis menghasilkan kedua format modul dan deklarasi TypeScript.

Opsi Konfigurasi Utama tsup

Opsi inti tsup: entry adalah array berisi berkas titik masuk. format menentukan format keluaran: ['esm', 'cjs']. dts: true menghasilkan berkas deklarasi TypeScript .d.ts di samping keluaran JS. target menetapkan lingkungan JavaScript minimum, yaitu esnext atau es2020. splitting: false menjaga keluaran tetap dalam satu berkas.

Perbandingan Kelebihan dan Kekurangan esbuild dan Rollup

esbuild (melalui tsup) mengompilasi 10–100 kali lebih cepat daripada Rollup. Rollup menghasilkan keluaran yang sedikit lebih teroptimasi, dengan tingkat perincian penghapusan kode yang tidak digunakan yang lebih baik dan kontrol lebih besar atas batas potongan. Untuk sebagian besar pustaka komponen, kecepatan tsup lebih unggul selama pengembangan. Untuk mendapatkan kontrol maksimum atas penghapusan kode yang tidak digunakan atau menangani penyiapan dengan banyak titik masuk yang kompleks, Rollup lebih disarankan.

Menandai React sebagai Eksternal

Konfigurasi pembuat bundel yang paling penting untuk pustaka React adalah: jangan pernah membundel React atau ReactDOM. Tandai keduanya sebagai eksternal agar tidak disertakan dalam keluaran Anda. Jika pustaka Anda membundel React, pengguna akan memiliki dua salinan React—satu dari bundel Anda dan satu dari aplikasi mereka. Hal ini merusak semua pengait React karena ada beberapa instans React.

Mengonfigurasi Dependensi Eksternal di tsup

Dalam konfigurasi tsup, gunakan opsi external: external: ['react', 'react-dom']. Dalam konfigurasi Rollup, tetapkan external: ['react', 'react-dom', 'react/jsx-runtime']. Sertakan react/jsx-runtime jika pustaka Anda menggunakan Transformasi JSX. Jadikan juga dependensi rekan lain yang dideklarasikan pustaka Anda sebagai eksternal.

Plugin Rollup untuk TypeScript

Konfigurasi Rollup minimal untuk pustaka TypeScript memerlukan tiga plugin: @rollup/plugin-typescript untuk kompilasi TypeScript, @rollup/plugin-node-resolve untuk menyelesaikan impor node_modules, dan @rollup/plugin-commonjs untuk mengonversi dependensi CommonJS menjadi ESM dalam bundel. Tambahkan rollup-plugin-dts untuk berkas deklarasi.

Struktur Direktori Keluaran

Keluaran pustaka dengan dua format yang umum adalah: dist/esm/index.js dan dist/esm/index.d.ts untuk konsumen ESM, serta dist/cjs/index.js dan dist/cjs/index.cjs untuk konsumen CJS. Kolom exports pada package.json memetakan jalur ini ke lingkungan yang sesuai. Berkas deklarasi TypeScript berada berdampingan dengan padanan JS-nya.

Beberapa Titik Masuk

Pustaka besar dapat memanfaatkan beberapa titik masuk agar konsumen hanya mengimpor yang mereka perlukan. Contohnya: entry: ['src/index.ts', 'src/utils.ts', 'src/hooks.ts']. Setiap titik masuk mendapatkan berkas keluarannya sendiri. Kolom exports pada package.json memetakan setiap jalur publik ke keluarannya: './utils' → './dist/utils.js'.

Skrip Kompilasi di package.json

Tambahkan perintah kompilasi ke skrip package.json: "build": "tsup". tsup membaca konfigurasinya dari tsup.config.ts di direktori utama. Skrip prapublikasi harus menjalankan kompilasi: "prepublishOnly": "npm run build" memastikan paket Anda selalu dikompilasi sebelum dipublikasikan ke npm.

React sebagai Eksternal dalam Bundel Pustaka

Mengapa React harus ditandai sebagai eksternal saat membundel pustaka komponen React?

Rangkuman Pelajaran: Pembundelan Pustaka

tsup (yang menggunakan esbuild) menyediakan pembundelan cepat tanpa konfigurasi dengan format: ['esm', 'cjs'] dan dts: true. Rollup menawarkan kontrol penghapusan kode yang tidak digunakan dengan tingkat perincian lebih tinggi melalui @rollup/plugin-typescript. Aturan terpenting: selalu tandai react, react-dom, dan semua dependensi rekan sebagai eksternal agar tidak ikut dibundel. Keluarkan hasil ke dist/esm/ dan dist/cjs/ bersama deklarasi TypeScript yang dibuat secara paralel. Beberapa titik masuk memungkinkan penghapusan kode yang lebih terperinci bagi konsumen.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Membundel dengan Rollup dan tsup untuk Pustaka” gratis?

Ya — teks lengkap “Membundel dengan Rollup dan tsup untuk Pustaka” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus React Academy, upgrade ke CoddyKit PRO. Kursus React Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Membundel dengan Rollup dan tsup untuk Pustaka”?

Konfigurasikan Rollup atau tsup untuk membundel komponen React dengan eksternalisasi React dan ReactDOM yang tepat. Kamu berlatih React Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai React Academy?

Tidak diperlukan pengalaman sebelumnya. React Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 4.

Berapa lama pelajaran “Membundel dengan Rollup dan tsup untuk Pustaka” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran React Academy ini?

Ya. Setiap pelajaran React Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Membundel dengan Rollup dan tsup untuk Pustaka
  2. Output Paket Ganda ESM dan CJS
  3. Dependensi Peer dan Tree Shaking
  4. Mempublikasikan ke npm dan Penerapan Versi Semantik
← Kembali ke React Academy