- 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.