能顺利迁移
- Replit Agent做的Web应用:Express服务端加React + Vite前端
- 通过Drizzle使用的PostgreSQL数据表
- Replit Auth,会被移除:由企业登录取而代之
- shadcn/ui、Tailwind、wouter、react-query和其他前端库
核对于2026年10月26日
简短回答
如果同事已经有Replit账号,就用Replit自带的私密发布:它是Publishing工具里的一个设置,Starter和Core及以上套餐都有。如果他们没有账号,或者你希望他们用工作账号登录,就把应用迁移到TeamOnly。把它下载为zip或推送到GitHub,运行npx teamonly init,然后对AI工具说:“把这个应用迁移到TeamOnly”。页面保持不变;Express服务端、Replit数据库和Replit Auth会被替换。Python应用迁移不了。
01先试试这个
能。Replit的Publishing工具里有一个Sharing设置,有四个选项。其中两个是私密的,都需要Replit账号。
| 谁能打开 | 访客需要Replit账号吗? | 最适合 | |
|---|---|---|---|
| Public | 互联网上任何拿到链接的人 | 不需要 | 里面没有任何私密内容 |
| Password protected | 任何知道密码的人 | 不需要。一个共用密码 | 快速演示。工作区管理员可以关闭这个选项 |
| Workspace only | 你Replit工作区里的管理员、成员和查看者 | 需要 | 同事已经在你的Replit工作区里 |
| Invite only | 你、工作区管理员,以及你邀请的人或群组 | 需要 | 少数几个用Replit的人 |
| TeamOnly | 公司里的所有人,或指定名单 | 不需要。工作Google账号、Microsoft账号或邮箱验证码 | 同事没有Replit账号 |
Replit表示,自2026年5月起,Starter和Core及以上套餐都可以私密发布;在那之前需要Pro或Enterprise套餐。Core套餐每月$20,按年付费为每月$18。Pro套餐每月$100,最多可邀请50位查看者;超过50位需要Enterprise套餐,SSO单点登录和审计日志也在Enterprise套餐里。
核对于2026年10月26日。Replit:谁能访问你的应用、Core和Starter套餐的私密发布、价格、查看者席位、Replit Auth、下载或连接GitHub、数据库连接信息、pg_dump备份。套餐会变,付费前请先到Replit上确认。
02何时迁移
如果以上都不符合,就留在Replit。迁移是实打实的工作,而Replit自带的分享只是改个设置。
03我的应用能迁移吗?
04怎么做
你需要把项目代码放到自己的电脑上,装好Node.js,以及Claude Code或Cursor。
在Replit里打开文件树顶部的菜单,选择Download as zip。或者在Git工具里连接GitHub,推送项目,然后克隆下来。
在项目文件夹里运行:
npx teamonly init
npm install这会添加TeamOnly应用需要的文件,以及AI工具会读取的说明。它绝不会覆盖你的文件。
把这个应用迁移到TeamOnly
它会按照TeamOnly的说明来做:保留每个页面,把Express路由改成TeamOnly服务端路由,在应用自己的数据库里重建Drizzle数据表,移除Replit Auth,并告诉你改了什么、哪些没能迁过来。
它会在本地运行应用。继续之前,先把主要页面点一遍。
npx teamonly login
npx teamonly deploy你会得到一个类似blog.acme.teamonly.app的链接。同事打开后用工作账号登录。
05有哪些变化
| 在你的Replit应用里 | 在TeamOnly上 |
|---|---|
Replit Auth:登录按钮、/api/login、sessions和users数据表 | 移除。TeamOnly会在应用加载前让用户登录;应用读取登录者是谁。 |
Express服务端(server/routes.ts) | 应用服务端代码里的路由,路径还是原来的/api路径 |
| 通过Drizzle使用的PostgreSQL数据表 | 应用自己的数据库,在首次部署时创建(SQLite,基于Cloudflare D1) |
| 只检查“是否已登录” | 编辑者或审批人等角色,在控制台的应用页面或用npx teamonly roles分配 |
| Replit Secrets | 密钥,用npx teamonly secrets set设置,绝不发送到浏览器 |
| 通过WebSocket的实时更新 | 一个“刷新”按钮 |
.replit和Replit的Vite插件 | 移除 |
06你的数据
迁移后的应用从空数据库开始。在你复制之前,数据行都留在Replit里。
在Replit里打开Database工具,选择生产数据库,从它的Settings标签页复制连接字符串。Replit只允许外部工具连接生产数据库,不能连接开发数据库。
用任意PostgreSQL工具(比如psql,示例见下方)把每张数据表导出为CSV文件。也留一份完整备份:Replit自己的文档用的是pg_dump。
在迁移后的应用里,用它的导入页面加载CSV文件。如果没有导入页面,上线前先让AI工具加一个。
用psql把一张表导出为CSV:
psql "PRODUCTION_CONNECTION_STRING" \
-c "\copy your_table TO 'your_table.csv' CSV HEADER"我们自己还没有迁移过线上的Replit数据库。导入后请核对行数。
07Python应用
Python应用无法迁移到TeamOnly。它只运行一种应用,即在Cloudflare上运行的React前端加TypeScript服务端,没有办法在上面运行Flask、Streamlit、FastAPI或Django。
如果你的Replit应用是用Python写的,请用上面介绍的Replit自带私密发布。让AI工具用React和TypeScript重做一遍,那是重写,不是迁移,我们也没有测试过。
08我们的发现
我们从GitHub上找了一个公开的Replit Agent应用并完成了迁移。它是一个带编辑后台的博客,基于Express、React、使用Drizzle的PostgreSQL和Replit Auth构建。
原应用有一个漏洞,源于Replit Auth的工作方式:任何有Replit账号的人都能登录,而应用把每个登录的人都当成管理员。所以任何人都能编辑或删除文章,并读取所有消息。迁移之后,编辑需要负责人或editor角色,并在服务端检查。
在Publishing工具的Sharing下,选择Workspace only或Invite only。之后访客要用Replit账号登录。还有一个Password protected选项,不需要账号,但只是一个共用密码。Replit表示,自2026年5月起,Starter和Core及以上套餐都可以私密发布。
Workspace only和Invite only需要:访客会被要求通过Replit登录。你以查看者身份加入Replit团队的人,如果还没有账号,会收到一封创建账号的邮件。只有Password protected设置不需要账号。
能。在项目里打开文件树顶部的菜单,选择Download as zip;或者在Git工具里连接GitHub,把代码推送过去。数据库是分开的:见下一个问题。
不会自动迁过来。应用迁移后数据库是空的。把生产数据库里的数据表导出为CSV文件(连接字符串在Database工具的Settings标签页里),再通过迁移后应用的导入页面加载进去。如果应用没有导入页面,就让AI工具加一个。
会被移除。Replit Auth让人用Replit账号登录。在TeamOnly上,大家在应用加载前用工作用的Google或Microsoft账号登录,或者用发到工作邮箱的6位验证码登录,应用会知道登录者是谁。
不能。TeamOnly只运行一种应用:React前端加TypeScript服务端。Flask、Streamlit、FastAPI和Django应用无法在上面运行。这类应用请用Replit自带的私密发布。
不需要。他们打开链接,用已有的工作账号登录。只使用应用的人是免费的。
一个典型的Replit Agent应用,需要AI工具在你的项目里工作15到60分钟,再加上你检查各个页面的时间。服务端代码有几千行的应用会更久。只需一分钟的是之后那一步:从部署到同事用上它。
抢先体验
TeamOnly正处于抢先体验阶段,所有套餐现在都可以购买。你可以免费试用14天,无需绑卡,也可以直接订阅。无论哪种方式,你的公司都会马上准备好,三条命令就能让你的第一个应用上线。
有问题请发邮件到hello@teamonly.dev,会有真人回复。