折腾记录:Flutter部署网页应用到Vercel
2023-4-26|2023-4-28
AlphaBoom
type
status
date
slug
summary
tags
category
icon
password
场景
创建一个聚合搜索的工具型网页部署在Vercel上,是一个界面和功能都很简单的应用。
如何将Flutter网页应用部署到Vercel
需要修改Vercel上部署相关的命令,通过Flutter build 生成web产物,流程如下:
- 依然按照常规流程在Vercel上创建新工程,并选择对应的Git仓库
- 选择Framework Preset为Other
- 修改Build Command为:
flutter/bin/flutter build web --release
- 修改Output Directory为:
build/web
- 修改Install Command为:
使用相关
配置环境变量
在Vercel上配置环境变量Dart上是无法直接读取的,可以采取如下方式:
使用Serverless服务
如何在Dart上使用Serverless可以参考这个帖子。
不确定在Flutter上是否可以用,可能需要自行实现Runtime:
本质是使用AWS Lambda可以直接从源头看如何自定义Runtime:
总结下重点部分:
- 需要实现Vercel的Build方法
- Build方法会返回一个Zip文件这个文件和Aws Lambda直接相关
- Aws Lambda会执行这个Zip里的bootstrap
- 具体实现就是和Aws的一些网络交互了
其他
享受不到Vercel的图片优化
结语
本来考虑几年前看过一些Flutter的资料,对整体设计和概念上有一定了解,所以决定用Flutter来写Web应用看看。不过切合这个需求点,我很多都依赖平台服务给的能力:
- 需要这类平台通过Serverless来实现接口代理,直接国内访问很多国外网络并不稳定。
- 其实对加载速度还是有要求的,因为工具型网站单次使用时间很短,那么对于Flutter不可避免的初始化(加载那个巨大的js)就不太能接受了。
下一步
发现V站有推广Layui的或者返璞归真也是出路
还是学下并使用前端框架来做吧,暂定Astro。
- Twikoo