Portless 用命名 .localhost URL 替代本地开发中的端口号,解决端口冲突、记忆端口、Cookie 串扰和配置硬编码等问题。它运行一个反向代理(默认 HTTPS 443,可用 --no-tls 或 PORTLESS_HTTPS=0 改为 HTTP 80),把 https://<name>.localhost 转发到应用自动分配的 4000-4999 端口。
主要能力:portless run 从 package.json、git 根目录或目录名推断名称;portless <name> <cmd> 显式命名;支持子域名(如 api.myapp)、git worktree 前缀、自定义 TLD(--tld test)、静态别名(portless alias 为 Docker 等外部服务注册路由)、portless get 输出 URL 供脚本使用、portless list 查看路由。默认自动检测并配置 Next.js、Express、Nuxt、Vite、Astro、React Router、Angular、Expo、React Native 等框架。
安装:npm install -g portless 或 npm install -D portless,需 Node.js 24+ 和 OpenSSL。首次 HTTPS 需运行 portless trust 信任本地 CA。
限制与安全:首次运行可能需 sudo 提权、修改 /etc/hosts、安装启动服务或开启 LAN/Tailscale/ngrok 暴露,这些操作需明确批准;未批准时可用 PORTLESS_SYNC_HOSTS=0。--force、prune、clean 等命令有破坏性,需检查归属并获批准。不要打印或提交 TLS 私钥与 ngrok token,也不要关闭 TLS 验证。非交互环境下首次提示会失败而非授权。LAN 模式绑定所有接口,非 LAN 模式仅绑定回环地址。具体收费与平台支持资料未提供。