33 points par xguru 2026-03-02 | Aucun commentaire pour le moment. | Partager sur WhatsApp
  • Utilitaire open source de Vercel Labs qui résout les conflits de ports en développement local et la corvée de devoir se souvenir du port utilisé
  • Attribue à chaque serveur de développement un sous-domaine app.localhost unique, offrant un système d’URL compréhensible à la fois par les humains et les agents IA
    Avec next dev, on utilise http://localhost:3000 et il faut donc se souvenir de 3000
    Mais avec portless myapp next dev, on peut accéder à l’application via http://myapp.localhost:1355
    En l’exécutant comme portless api.myapp pnpm start, l’accès par sous-domaine est aussi pris en charge via http://api.myapp.localhost:1355
  • Fonctionne avec une architecture basée sur un proxy, où portless proxy route centralement les requêtes
    • Au lancement d’une app, le proxy démarre automatiquement, et chaque app se voit attribuer un port aléatoire (4000–4999)
    • La plupart des frameworks (Next.js, Express, Nuxt, etc.) reconnaissent automatiquement la variable d’environnement PORT
    • Pour certains frameworks comme Vite et Astro, la compatibilité est assurée grâce à une injection automatique de flags
  • Prend en charge HTTP/2 et HTTPS pour des chargements de page plus rapides et des communications locales sécurisées
    • Les navigateurs limitent HTTP/1.1 à 6 connexions par hôte
      • Ce qui dégrade les performances des serveurs de développement qui servent de nombreux fichiers non bundlés, comme Vite/Nuxt
      • HTTP/2 multiplexe toutes les requêtes sur une seule connexion
    • Génération automatique de certificats et enregistrement dans le magasin de confiance du système
    • Des certificats personnalisés peuvent aussi être appliqués avec les options --cert et --key
  • Fournit une interface CLI centrée sur les commandes
    • portless <name> <cmd> : lance une app avec le nom indiqué
    • portless list : affiche la liste des routes actives
    • portless proxy start/stop : contrôle le proxy
    • Il est possible de contourner le proxy avec la variable d’environnement PORTLESS=0
  • Stocke les informations de routes et de PID via un répertoire de gestion d’état
    • En mode utilisateur normal, utilise ~/.portless, et en mode root, /tmp/portless
    • Le chemin peut être redéfini avec PORTLESS_STATE_DIR
  • Lors de la configuration d’un proxy API avec Vite, webpack-dev-server etc., il faut réécrire l’en-tête Host
    • En cas de mauvaise configuration, une réponse 508 Loop Detected indique le problème
  • Compatible avec Node.js 20 ou supérieur, sur macOS et Linux
  • Monorepo basé sur pnpm + Turborepo
  • Licence Apache-2.0, codebase TypeScript (environ 74 %)

Aucun commentaire pour le moment.

Aucun commentaire pour le moment.