• लोकल डेवलपमेंट के दौरान port conflict और कौन-सा पोर्ट इस्तेमाल किया था यह याद रखने की परेशानी को हल करने वाली Vercel Labs की open source utility
  • हर development server को एक अलग app.localhost subdomain दिया जाता है, जिससे इंसान और AI agents दोनों के लिए समझने योग्य URL system मिलता है
    next dev से चलाने पर http://localhost:3000 मिलता है और 3000 याद रखना पड़ता है, लेकिन
    portless myapp next dev चलाने पर http://myapp.localhost:1355 के रूप में access किया जा सकता है
    portless api.myapp pnpm start की तरह चलाने पर http://api.myapp.localhost:1355 के जरिए subdomain access भी supported है
  • यह proxy-based architecture पर काम करता है, जहाँ portless proxy बीच में request route करता है
    • app चलने पर proxy अपने-आप शुरू हो जाता है, और हर app को random port (4000–4999) दिया जाता है
    • ज़्यादातर frameworks (Next.js, Express, Nuxt आदि) PORT environment variable को अपने-आप पहचान लेते हैं
    • Vite, Astro जैसे कुछ frameworks के लिए automatic flag injection से compatibility दी गई है
  • HTTP/2 और HTTPS support के साथ तेज़ page load और सुरक्षित local communication
    • browser आम तौर पर HTTP/1.1 में प्रति host 6 connections की सीमा रखते हैं
      • Vite/Nuxt जैसे development servers, जो कई uncompressed files serve करते हैं, उनमें performance गिर सकती है
      • HTTP/2 सभी requests को एक ही connection पर multiplex करता है
    • certificate खुद बनाना और system trust store में register करना अपने-आप होता है
    • --cert, --key options से custom certificate भी लगाया जा सकता है
  • command-oriented CLI interface दिया गया है
    • portless <name> <cmd> : दिए गए नाम से app चलाना
    • portless list : active routes की सूची दिखाना
    • portless proxy start/stop : proxy control
    • PORTLESS=0 environment variable से proxy bypass करके चलाया जा सकता है
  • state management directory के जरिए route और PID जानकारी store की जाती है
    • सामान्य user mode में ~/.portless, और root mode में /tmp/portless इस्तेमाल होता है
    • PORTLESS_STATE_DIR से path को redefine किया जा सकता है
  • Vite, webpack-dev-server आदि में API proxy setting करते समय Host header को rewrite करना ज़रूरी है
    • गलत setting होने पर 508 Loop Detected response के जरिए समस्या बताई जाती है
  • Node.js 20 या उससे ऊपर, macOS और Linux environment supported हैं
  • pnpm + Turborepo आधारित monorepo structure
  • Apache-2.0 license, TypeScript (लगभग 74%) codebase

अभी कोई टिप्पणी नहीं है.

अभी कोई टिप्पणी नहीं है.