Node.js 运行时:Express/Fastify/Koa 在手机上启动
支持的框架
Node.js 运行时适合以下场景:
- Express / Fastify / Koa:轻量 HTTP API 或服务端渲染
- Next.js 服务端:需要 SSR 的项目(静态产物用「前端」类型,需要服务端渲染用 Node.js)
- Socket.IO / WebSocket:实时通信类应用
- 命令行工具 Web UI:用 Node 处理后端逻辑,WebView 做界面
创建流程
- 打开类型选择器(需开启高级功能),点「Node.js」卡片
- 在专属表单里:
- 选择项目目录
- 指定启动命令(比如
node server.js或npm run start) - 指定端口号(默认 3000)
- 在基本信息里填应用名称和图标
- 点击保存
依赖安装
首次预览或构建时,WebToApp 会:
- 在 APK 内部的应用存储目录创建 Node.js 运行环境
- 从 APK 内嵌的原生二进制启动 Node.js
- 在应用存储目录执行
npm install安装项目依赖 - 依赖安装完成后执行你的启动命令
npm install 可能需要联网(拉取公共 npm registry 的包)。如果项目已经包含 node_modules 目录,WebToApp 会跳过安装步骤,直接启动。
内置示例项目
WebToApp 内置了 Node/Express 示例项目,包含一个简单的路由和前端页面。第一次用 Node.js 类型时,先用示例跑通流程——确认 npm install、服务启动、WebView 访问 localhost 都正常,再换自己的项目。
端口配置
在通用配置里可以设置:
- 启动端口:默认 3000,如果冲突可以改
- 端口冲突策略:如果目标端口被占用怎么办(自动换端口 / 报错 / 等待释放)
- 后台运行:让 Node.js 进程在 APK 切到后台后继续保持运行
- 自动重启:进程崩溃后是否自动重启
适用与不适用
适合:
- 小型 API 服务或演示项目
- 命令行工具的 Web 界面化
- 实时通信类应用
不太适合:
- 需要集群 / 多进程的生产级服务
- 依赖原生 C++ 模块的项目(npm install 时可能需要编译,arm64-v8a 上编译原生模块比较脆弱)
- 长期运行的常驻服务(手机后台服务的稳定性仍受 Android 系统限制)