Flutter
的快速发展,如今
Flutter
生态也日渐壮大,偶然打开
Flutter
的
官方文档发现已经支持了
Web
开发,因而便前去探探路,给你们分享点干货。
首先咱们这里以默认Flutter
建立的项目为例,也就是New
一个Flutter Project
,有的同窗会发现目录下并无Web
这个目录,因此在参考官网进行flutter run -d chrome
命令的时候是无效的。html
第一步先检查当前的Flutter
分支是否处在master
上面。执行命令python
flutter channel
复制代码
若是在master
分支上Terminal
内会打印以下。android
flutter channels:
beta
dev
* master
stable
复制代码
若是没在master
分支上则切换至master
上.ios
flutter channel master
复制代码
随后对Flutter
的SDK进行更新,执行以下命令。至此咱们的SDK就具有构建Web的能力了。web
flutter upgrade
复制代码
更新完SDK的同窗们确定都想跃跃欲试,遂照着官网敲下flutter run -d chrome
,随后发现SDK报错~此处仍是埋了一坑,其缘由是SDK没有启用Web工具
构建项目,目前Web
开发还处于发育阶段。执行以下命令启用项目。chrome
flutter config --enable-web
复制代码
而后再执行json
flutter create .
复制代码
当你看到Flutter
在终端给你的彩蛋就说明已经搭建成功了,而且会告诉你如今Web工具
处于试错阶段,生产环境仍是要慎用。此时你会发现你的项目存在了一个Web
的目录。浏览器
执行完上述命令事后咱们就可使用Chrome
来调试咱们的页面了,在Android Studio
中设备选择会多了几个选项 bash
Chrome(web)
会直接运行在
Chrome
浏览器上,当选择
Server(web)
的时候会在终端输出一个地址如
http://localhost:54125/
将地址输入到浏览器中便可访问。也可用过命令工具进行
Debug
flutter run -d chrome
复制代码
Android Studio
默认会使用dhttpd
来搭建HTTP服务,关于dhttpd
我就不过多赘述,官方文档有详细的描述,实际上相似于python -m SimpleHTTPServer 80
。服务器
当咱们尝试发布的时候,先对Web
项目进行构建,在项目根目录下执行
flutter build web
复制代码
在build目录下产生对应的文件,结构以下。
/build/web
assets
AssetManifest.json
FontManifest.json
LICENSE
fonts
MaterialIcons-Regular.ttf
<other font files>
<image files>
index.html
main.dart.js
main.dart.js.map
复制代码
在打包的时候则需将build目录总体打包,去除ios
及android
目录,上传到服务器便可。
随后在服务器下对其进行解压,CD
到/build/web
目录下开启Http服务
,别人就能够看到你的网站啦,官网的例子是dhttp
和python
,我试用Nginx
也彻底没有问题。
若是想使用本地服务调试,也能够CD
到/build/web
执行
flutter pub global run dhttpd
复制代码
端口默认是8080
,在浏览器中输入localhost:8080
便可查看页面。 没有dhttpd
话用pub
安装一下便可。
从Flutter
的进展能够看出Google
在跨平台上下的决心,一份代码如今能够产出三端,不过我我的以为一个项目有了IOS
和Android
两端后,没人会去用Web App
吧,并且我以为页面初始化加载速率略慢。不过对于咱们客户端的同窗来讲没事还能写写网页仍是不错的了。