1 poin oleh GN⁺ 3 jam lalu | 1 komentar | Bagikan ke WhatsApp
  • Untuk mengurangi beban merakit alat pengembangan web secara terpisah untuk tiap proyek, Vite+ menggabungkan runtime, package manager, serta alat build, test, dan pemeriksaan ke dalam satu entry point
  • vp dev, vp check, vp test, vp build, vp pack, vp run terhubung dengan Vite 8, Vitest, Rolldown, tsdown, Oxlint, Oxfmt untuk menyediakan sistem perintah yang konsisten
  • Sejak alpha, melalui lebih dari 12 versi dan lebih dari 500 PR, caching, migrasi, template organisasi, dukungan jaringan perusahaan, dan stabilitas lintas platform telah ditingkatkan
  • Berdasarkan repositori publik, lebih dari 1.300 bergantung pada vite-plus, dan proyek seperti Dify, critical, BlockNote, vinext, îles, Inkline, dan npmx sudah menggunakannya
  • Karena masih tahap sebelum 1.0, masih ada peningkatan yang tersisa untuk remote caching, dukungan GitLab CI/CD, kompatibilitas framework dan plugin, migrasi, kanal distribusi, serta diagnostik

Toolchain terpadu yang disediakan Vite+

  • Vite+ dirilis beta sebagai toolchain terpadu untuk pengembangan web
  • Dari satu entry point, Vite+ mengelola runtime dan package manager, serta menyediakan berbagai alat frontend bersama sebagai stack yang telah diuji
  • Sepenuhnya open source dengan lisensi MIT, dan tidak bergantung pada framework tertentu
  • Dapat digunakan di berbagai proyek web seperti CLI, library, dan aplikasi web
  • Proyek baru dimulai dengan vp create, sedangkan proyek yang sudah ada dengan vp migrate

Menjalankan development, pemeriksaan, dan build dengan perintah yang sama

  • Vite+ dirancang agar pengguna memakai sistem perintah yang sama, alih-alih harus mempelajari kombinasi alat dan perintah yang berbeda di tiap repositori
  • Perintah utamanya adalah sebagai berikut
    • vp dev: memulai server development berbasis Vite 8 dengan hot module replacement
    • vp check: menjalankan format Oxfmt, lint Oxlint, dan pemeriksaan tipe sekaligus
    • vp test: menjalankan unit test berbasis Vitest
    • vp build: melakukan production build berbasis Vite 8
    • vp pack: membundel library berbasis tsdown dan menyertakan praktik terbaik
    • vp run: menjalankan npm script atau task dengan task runner bawaan yang sadar monorepo dan menggunakan caching cerdas
  • Semakin besar tim dan codebase, manfaat berikut makin terasa
    • Versi alat terselaraskan
    • Berbagi konfigurasi menjadi lebih mudah
    • Tahap setup untuk kontributor baru berkurang
    • CI menjalankan perintah yang sama dengan development lokal
  • Ditujukan untuk developer yang tidak ingin berulang kali merakit toolchain sendiri, serta tim yang menginginkan konfigurasi konsisten di seluruh proyek
  • Vite+ tidak menggantikan ekosistem Vite
    • Plugin Vite tetap menjadi plugin Vite
    • Proyek tetap dapat menggunakan package manager yang diinginkan secara internal
    • Vite+ menyediakan lapisan integrasi agar elemen-elemen ini bekerja seperti satu toolchain

Perubahan dari alpha hingga beta

  • Setelah alpha Vite+, melalui pengujian pada proyek nyata, lebih dari 12 versi dirilis dan lebih dari 500 PR digabungkan
  • Peningkatan utamanya adalah sebagai berikut
    • Caching yang lebih pintar: vp run menggabungkan pelacakan data otomatis dengan metadata yang dilaporkan Vite, sehingga build cache bekerja dengan benar tanpa perlu mencantumkan input, output, dan variabel lingkungan secara manual
    • Peningkatan migrasi: vp migrate menangani berbagai konfigurasi aplikasi dan juga menyediakan prompt migrasi untuk agent
    • Fitur enterprise: template organisasi menstandarkan konfigurasi antar tim, dan HTTP yang mengenali proxy serta custom CA memungkinkan vp dijalankan di balik proxy dan firewall perusahaan
    • Lintas platform: vp diperkuat agar bekerja lebih baik di sistem operasi dan shell utama
    • Pemolesan dan perbaikan: lebih dari 180 perbaikan dan peningkatan diterapkan pada vite-plus
  • Detail perubahan dapat dilihat di riwayat rilis Vite+

Alat dasar yang ikut berkembang

Contoh adopsi nyata

  • Ada lebih dari 1.300 repositori publik yang bergantung pada vite-plus, belum termasuk proyek privat dan instalasi CLI global
  • Vite+ digunakan di berbagai jenis proyek
    • Dify: platform open source untuk membangun aplikasi LLM
    • critical: alat CSS critical-path independen framework dari Addy Osmani
    • BlockNote: editor rich text bergaya Notion berbasis blok untuk React
    • vinext: framework drop-in kompatibel Next.js berbasis Vite
    • zerobyte: otomatisasi backup untuk pengguna self-hosted yang dibuat dengan TanStack dan React
    • îles: generator situs islands dengan partial hydration untuk Vue
    • agentsview: alat pencarian dan analisis sesi local-first untuk coding agent, dibuat dengan Svelte
    • Inkline: library komponen UI yang mendukung Vue, React, Svelte, Angular, Solid, Qwik, Astro
    • npmx: browser registry npm open source berbasis Nuxt
  • Daniel Roe dari npmx menyatakan bahwa Vite+ menjaga pengalaman development tetap cepat, sekaligus mempercepat proses CI dan review

Tugas yang tersisa sebelum 1.0

  • Vite+ stabil, tetapi belum berada pada tahap final; adopsi direkomendasikan jika memenuhi kebutuhan fitur untuk toolchain terpadu
  • Area fokus hingga 1.0 adalah sebagai berikut
    • Mengimplementasikan remote caching untuk Vite Task, yaitu vp run
    • Menghadirkan setup-vp untuk GitLab CI/CD
    • Meningkatkan kompatibilitas di seluruh framework dan plugin Vite
    • Mendukung lebih banyak target migrasi
    • Menambahkan kanal distribusi seperti formula Homebrew resmi
    • Membuat dokumentasi dan diagnostik lebih jelas
  • Masukan komunitas diprioritaskan untuk mengurangi celah kompatibilitas yang tersisa sebelum rilis 1.0

Instalasi dan migrasi

  • Perintah global vp diinstal di macOS/Linux dengan perintah berikut
curl -fsSL https://vite.plus | bash
  • Di Windows, gunakan perintah PowerShell berikut
irm https://vite.plus/ps1 | iex
  • Untuk membuat proyek baru, gunakan perintah berikut
vp create
  • Untuk mencoba Vite+ pada proyek Vite yang sudah ada, gunakan perintah berikut
vp migrate

1 komentar

 
GN⁺ 3 jam lalu
Opini Hacker News
  • Saya sangat suka Vite, tetapi sama sekali tidak tahu alat-alat lainnya itu apa
    Rasanya baru sebentar menunduk untuk bekerja, ekosistem tooling frontend tiba-tiba sudah berevolusi, dan saya bertanya-tanya apakah ada arus menuju stack yang membosankan tetapi bekerja dengan baik

    • Alat-alat yang disertakan sebenarnya cukup bagus: vitest adalah test runner yang sangat cepat, dan saya tetap menyukainya setelah mencoba berbagai alat seperti jest dan test runner bawaan Node
      oxlint menggantikan eslint, kompatibel dengan format file konfigurasinya, dan sangat cepat karena tidak ditulis dalam JavaScript. Saya juga pernah mencoba biome, tetapi oxlint punya lebih banyak aturan dan kompatibilitas eslint yang lebih baik
      oxfmt menggantikan prettier dan lebih cepat karena tidak ditulis dalam JavaScript, sedangkan rolldown menggantikan rollup, kompatibel, tetapi jauh lebih cepat. Untuk proyek baru, saya sudah terutama memakai alat-alat seperti ini
    • Alat-alat lainnya adalah untuk testing, bundling, linting, dan formatting
      Dulu kita harus memakai alat dari proyek open source yang berbeda-beda, masing-masing dengan konfigurasi dan siklus update yang berbeda, tetapi sekarang semuanya ditangani sebagai satu toolchain sederhana
      Vite+ pada dasarnya adalah stack “membosankan tetapi bekerja dengan baik”, dengan performa lebih baik dan kebutuhan konfigurasi lebih sedikit
    • Benar, arahnya memang persis begitu
      eslint → oxlint, prettier → oxfmt ditulis ulang dengan Rust agar cepat, dan webpack → Vite sudah cukup luas dipakai sehingga diterima
      rolldown → tsdown menambahkan dukungan TypeScript, dan jest → vitest cocok dengan Vite
      Intinya mengambil praktik yang sudah mapan selama 10 tahun terakhir lalu menggabungkan dukungan TypeScript, performa berbasis Rust, dan interoperabilitas
    • Saya sempat mencoba Vite tetapi tidak merasakan keunggulan besar dibanding esbuild, jadi menjauh
      Saya juga memakai Deno, dan penasaran bagian mana yang berguna
    • Inilah stack membosankan tetapi bekerja dengan baik terbaru yang sedang naik daun saat ini
  • Saya suka Vite, Vitest, Oxlint, dan Oxfmt, dan di sebagian besar proyek baru saya melihat ke arah ini lebih dulu
    Semoga orang-orang ini mendapatkan pendanaan yang cukup agar bisa terus mengembangkannya setidaknya 10 tahun ke depan
    Jauh lebih baik daripada membuka proyek lama lalu menemukan Gulp, Grunt, webpack, dan berbagai alat lain yang campur aduk. Saya juga sudah memindahkan salah satu proyek seperti itu ke stack baru

    • Setahu saya VoidZero sudah diakuisisi Cloudflare, jadi pendanaan sepertinya bukan masalah
      Kuncinya adalah apakah Cloudflare akan membiarkan mereka terus membuat fitur Vite dan Vite+. Karena fitur-fitur itu menguntungkan bukan hanya Cloudflare, tetapi semua platform cloud
      https://blog.cloudflare.com/voidzero-joins-cloudflare/
    • Membuat Vite, ESLint, Prettier, TypeScript, dan React semuanya saling cocok secara alami bisa cukup rumit
      Apalagi jika full-stack dengan server-side rendering; kalau hanya frontend dan TypeScript dikeluarkan, itu menjadi cukup mudah
      Kita lihat saja apakah Vite+ membantu untuk kasus yang lebih kompleks
  • Menurut saya proyek ini perlu mencari nama yang lebih baik
    Karena sebenarnya ini bukan Vite yang lebih baik, melainkan kumpulan alat lain, jadi cukup membingungkan
    Saat itu Void Zero mungkin ingin memonetisasi merek Vite, tetapi sekarang setelah diakuisisi Cloudflare, kebutuhan itu sudah tidak ada

    • Karena ada berbagai hal yang ditambahkan ke Vite, “plus” bisa punya banyak makna
  • Saya sangat puas memakai Vite, Vitest, Rolldown, tsdown, Oxlint, dan Oxfmt
    Banyak paket yang saya hard fork, dan saya tidak ingin kembali. Semuanya gewoon berfungsi dengan baik
    Jika namanya membingungkan, mulai saja dari Oxlint https://oxc.rs/docs/guide/usage/linter dan Rolldown https://rolldown.rs/
    Selama 6 bulan terakhir saat mengadopsinya, saya hanya mengubah tsconfig sangat sedikit
    Biasanya, kecuali untuk hal seperti antd6, echart, rendering engine, atau pustaka geospasial, saya mengambil paket baru, merapikannya dengan Claude, menyesuaikannya ke sistem tipe yang ketat dan seragam, lalu mencocokkannya dengan preferensi Vite, tsconfig, dan oxlint
    Hasilnya, kebutuhan untuk terus mengikuti masalah library bloat atau serangan supply chain berkurang, dan kodenya lebih mudah dibaca serta diperbaiki

  • Dalam 4 tahun dari 2022 hingga 2026, Vite menaikkan versi mayor lima kali: 3 → 4 → 5 → 6 → 7 → 8
    Setiap kali ada breaking changes dan developer harus melakukan migrasi; itu terlalu banyak. Padahal juga tidak jauh lebih baik secara dramatis dibanding versi 3
    Saya tidak ingin membawa tingkat perubahan yang tidak perlu dan kekacauan terus-menerus seperti ini ke sisa toolchain pengembangan
    Jika Vite+ pada akhirnya hanya membungkus alat yang sudah ada dengan antarmuka command-line yang diabstraksikan, berarti kita harus melewati lebih banyak lapisan tidak langsung untuk membuat perilaku yang diinginkan, jadi saya belum optimistis

    • Saya mengikuti semua migrasi mayor dan rasanya cukup mulus
      Saya tidak ingat ada masalah besar, dan setiap kali umumnya sepadan
    • Saya memigrasikannya sendiri, tetapi tidak mengerikan
      Ada beberapa breaking changes, tetapi relatif terisolasi, dan kecepatan serta peningkatan di antara versi-versi ini cukup besar
    • Kami juga melakukan semua migrasi versi mayor itu, tetapi tidak ada kerusakan atau churn besar
      Saya penasaran kerusakan apa yang Anda alami
    • Sulit bagi saya untuk setuju bahwa dibanding versi 3 tidak banyak yang membaik
      Penambahan fitur terkait server-side rendering adalah peningkatan besar
    • Saya menaikkan dari 4 ke 8 sekaligus, dan hanya perlu mengubah 5 baris konfigurasi
      Saya harap orang berhenti terus mengeluh soal masalah yang tidak ada. Saya bahkan ragu apakah mereka benar-benar memakai alat-alat ini
  • Sangat sulit mengikuti ekosistem frontend, atau JavaScript
    Rindu masa-masa bekerja dengan Laravel, dan berharap pekerjaan yang memakai Laravel memberi bayaran lebih tinggi

    • Saya tidak ingin bekerja dengan Laravel Livewire dan Alpine.js
      Namun tetap harus terus mengikuti, dan hasilnya mungkin juga tidak terlalu memuaskan
    • Sebenarnya tidak harus selalu mengikuti
      Yang dipakai sebelumnya juga masih berfungsi
    • Sepakat. Kami juga sedang perlahan mengganti monolit Laravel kami dengan Python Lambda
      Benar-benar rindu masa-masa Laravel 6
  • Karena pendekatan ini berhasil di uv, rasanya tim yang kompeten juga bisa melakukan hal yang sama di JavaScript

    • Mengejutkan bahwa pembahasan uv di komentar hanya ini
      Bagi saya ini perbandingan yang sangat jelas, dan terasa seperti perkembangan yang sangat menggembirakan bagi ekosistem JavaScript juga
      Berkat uv, bekerja dengan Python jadi menyenangkan lagi
  • Penasaran apakah ini bisa dipakai juga untuk build Node seperti Vite, atau hanya untuk browser

    • Karena memakai Vite, batasannya juga sama seperti Vite
      Namun dengan vite-plugin-node, saya memakai Vite di server NestJS tanpa masalah
      Lihat contoh di https://github.com/leosuncin/nest-vite-example/blob/master/v...
    • Konfigurasi ala mantra saya yang bekerja baik saat menargetkan Node ada di sini: https://pastebin.com/ynz4B5X0
      Pada dasarnya cukup berpura-pura bahwa dirinya adalah library
    • Saya juga memakai Vite+ untuk CLI
      Dalam kasus ini Vite tidak dipakai sebagai development server, tetapi linting, formatting, eksekusi task, dan caching tetap ada
    • Setiap kali seseorang menyarankan bundling kode Node, saya selalu penasaran dengan use case-nya
      Apa keuntungannya? Untuk obfuscation di SEA?
  • Penasaran apakah ini juga disertai subscription
    Kalau ada “+” di namanya, saya jadi waspada dan otomatis mengira ada subscription yang ikut menempel
    Setelah dilihat, sepertinya tidak begitu

    • Itu juga pikiran pertama saya
      Sekarang “$name+” sudah sangat melekat sebagai arti “layanan subscription milik $name”
    • Tertulis “open source sepenuhnya dengan lisensi MIT”
    • Mungkin awalnya memang ada rencana seperti itu, tetapi setelahnya sepertinya terjadi acqui-hire
    • Namanya memang agak mengkhawatirkan
  • Penasaran apakah bisa dipakai bersama Astro