- Utilitas open-source dari Vercel Labs yang menyelesaikan konflik port saat pengembangan lokal serta repotnya harus mengingat port yang dipakai
- Memberikan subdomain app.localhost yang unik untuk tiap server pengembangan, sehingga menyediakan sistem URL yang dapat dikenali baik oleh manusia maupun agen AI
Jika dijalankan dengan next dev, hasilnya http://localhost:3000 sehingga Anda harus mengingat 3000
Namun jika menjalankan portless myapp next dev, Anda bisa mengakses dalam bentuk http://myapp.localhost:1355
Jika dijalankan seperti portless api.myapp pnpm start, akses subdomain seperti http://api.myapp.localhost:1355 juga didukung
- Bekerja dengan arsitektur berbasis proxy, di mana
portless proxy merutekan permintaan secara terpusat
- Saat aplikasi dijalankan, proxy akan otomatis dimulai, dan tiap aplikasi dialokasikan ke port acak (4000–4999)
- Sebagian besar framework (Next.js, Express, Nuxt, dll.) otomatis mengenali variabel lingkungan
PORT
- Untuk beberapa framework seperti Vite dan Astro, kompatibilitas dijaga lewat fitur injeksi flag otomatis
- Mendukung HTTP/2 dan HTTPS untuk mewujudkan pemuatan halaman yang cepat dan komunikasi lokal yang aman
- Browser membatasi HTTP/1.1 hingga 6 koneksi per host
- Menurunkan performa server pengembangan yang menyajikan banyak file tidak terkompresi seperti Vite/Nuxt
- HTTP/2 memultipleks semua permintaan melalui satu koneksi
- Pembuatan sertifikat internal dan pendaftaran ke system trust store diotomatisasi
- Opsi
--cert, --key juga bisa dipakai untuk menerapkan sertifikat kustom
- Menyediakan antarmuka CLI yang berpusat pada perintah
portless <name> <cmd> : menjalankan aplikasi dengan nama yang ditentukan
portless list : menampilkan daftar rute yang aktif
portless proxy start/stop : mengontrol proxy
- Bisa dijalankan dengan melewati proxy menggunakan variabel lingkungan
PORTLESS=0
- Menyimpan informasi rute dan PID melalui direktori manajemen status
- Dalam mode pengguna biasa memakai
~/.portless, dalam mode root memakai /tmp/portless
- Jalur dapat ditimpa ulang dengan
PORTLESS_STATE_DIR
- Saat mengatur API proxy di Vite, webpack-dev-server dan lainnya, header
Host perlu ditulis ulang
- Jika konfigurasi salah, masalah akan diberi tahu lewat respons
508 Loop Detected
- Mendukung Node.js 20 ke atas serta lingkungan macOS dan Linux
- Struktur monorepo berbasis pnpm + Turborepo
- Lisensi Apache-2.0, codebase TypeScript (sekitar 74%)
7 komentar
Sudah diperbarui agar mendukung worktree
https://github.com/vercel-labs/portless/releases/tag/v0.5.2
Sekarang secara otomatis mengenali worktree dan menambahkan nama branch di depan host
Kurang cocok dengan worktree proyek yang sama, jadi saya tidak memakainya.
Saya kira penugasannya dilakukan otomatis, ternyata hanya didaftarkan secara manual.
Saya memakai Caddy, jadi sepertinya tidak ada alasan khusus untuk beralih ke ini.
Saya sudah menggunakan ini dengan docker + traefik + mkcert, tetapi sepertinya memakai itu akan lebih praktis.
Artikel yang bermanfaat.
Sekarang bisa bilang bye ke error EADDRINUSE?
Akhir-akhir ini banyak yang ngembangin ini-itu lewat agent, jadi banyak proses jalan bareng dan saling bentrok, kacau juga sih wkwk
Karena topik ini dibicarakan di X, tampaknya jika digunakan di Docker, ini juga bisa bekerja dengan memaksa memasukkan PID daemon Docker.
https://github.com/vercel-labs/portless/issues/61