项目打包要求
HTML、Node.js、Python 三种项目类型的压缩包规范与常见打包错误。
上传部署的项目必须打包为 .zip 压缩包。所有项目类型都受以下限制:
| 限制项 | 要求 |
|---|---|
| 压缩包格式 | 仅支持 .zip |
| 压缩包大小 | ≤ 200MB |
| 解压后大小 | ≤ 1GB |
| 文件数量 | ≤ 20,000 |
在部署页切换项目类型时,界面也会实时显示对应的打包要求,与本文一致。
HTML 静态网站#
适合纯前端页面、作品集、活动页和已构建完成的 SPA。
上传前必须确认:
index.html位于压缩包根目录(解压后第一层就能看到)。- CSS / JS / 图片等资源使用相对路径。
- 本地先预览一遍,确认没有资源 404。
正确的压缩包结构:
网站.zip
├─ index.html
├─ assets/
│ ├─ app.css
│ ├─ app.js
│ └─ logo.png
└─ favicon.ico
注意事项:
- React / Vue / Vite 项目请上传 build 后的 dist 目录内容,不是源码。
- 前端路由使用 history 模式时,需要自备静态回退方案(或改用 hash 路由)。
常见错误:
- 把整个项目文件夹再包了一层——解压后第一层看不到
index.html,会导致部署失败。 - 把
.env、密码、私钥、数据库备份等敏感文件打进压缩包。
Node.js 项目#
适合 Express、Koa、Fastify 等常驻 HTTP 服务项目。
上传前必须确认:
package.json位于根目录,生产依赖写入dependencies。- 入口默认为
app.js(可在部署时改成其它路径,如src/server.js),且必须是常驻运行的服务。 - 服务监听
0.0.0.0,并优先读取process.env.PORT作为端口。
正确的压缩包结构:
项目.zip
├─ package.json
├─ app.js # 默认入口
├─ package-lock.json # 建议保留
├─ public/
└─ src/
部署时平台会自动处理:
- 自动执行
npm install(出于安全会禁用 lifecycle/install scripts)。 - 自动复用服务器上现有的 Node 环境,缺失时安装受管 Node 24 LTS。
常见错误:
- 上传本机的
node_modules(原生依赖可能与服务器不兼容,请让平台自动安装)。 - 上传
.env、密钥、日志文件。 - 入口是跑完即退出的脚本(如一次性任务),而不是常驻 HTTP 服务。
Python 项目#
适合 Flask、FastAPI 等常驻 HTTP 服务的 Python Web 项目。
上传前必须确认:
requirements.txt位于根目录,写明依赖及版本。- 入口默认为
app.py(可在部署时改成其它路径,如src/main.py),且必须是常驻运行的服务。 - 服务监听
0.0.0.0,并优先读取环境变量PORT作为端口。
正确的压缩包结构:
项目.zip
├─ requirements.txt
├─ app.py # 默认入口
├─ templates/
├─ static/
└─ src/
部署时平台会自动处理:
- 依赖安装到项目专属目录,仅接受 binary wheel。
- 使用服务器现有 Python 环境;配置的版本不存在时自动回退并给出提示。
常见错误:
- 打包了
venv、__pycache__或本机解释器。 - 上传
.env、密钥、数据库文件。 - 入口是跑完即退出的脚本,而不是常驻 HTTP 服务。
下一步#
压缩包准备好后,请继续阅读部署第一个网站了解完整部署流程。