Flutter Web目前還是預覽版,還有些不是跟移動端那麼成熟,小翼在這裏經過自己的努力調試了一下。廢話不多說,直接擼碼:
Flutter Web配置:
1、首先flutterSDK的版本要1.5.4及以上,DartSDK版本要2.3.0及以上。
直接下載flutterSDK就行了,它包含了DartSDK;
下載flutterSDK跟flutter移動端的一樣,不懂環境的的請看《flutter移動端的環境配置和啓動》這一篇,這裏直接在Git裏面克隆flutterSDK;
git clone -b beta https://github.com/flutter/flutter.git
配置環境也是一樣的。這裏就不說了
2、配置DartSDK環境:在flutterSDK裏面的..flutter\bin\cache\dart-sdk;
右鍵我的電腦-->屬性-->高級系統屬性-->環境變量-->找到PATH,點擊編輯-->黏貼這個路徑:..flutter\bin\cache\dart-sdk\bin;
3、下載IDEA開發工具(VS Code也可以開發,配置跟IDEA差不多,這裏以IDEA爲示例),啓動添加flutter插件和dart插件,配置FlutterSDK路徑,如下:
安裝 Dart 和 flutter 插件
我們要給 IDEA 安裝 dart 和 flutter 插件。安裝完成後就可以開始我們的 flutter web之旅了。
新建一個 Flutter Web 項目
安裝完成Dart 和 flutter 環境後,重啓 IDEA後就可以快速的搭建一個 Flutter web 項目。
選擇 新建 Dart項目,創建一個 Flutter Web App。
項目創建好,要等待 依賴包的下載。
接着安裝 webdev 工具,在IDEA中選擇命令窗口,運行下面的命令。
$ flutter packages pub global activate webdev
安裝完成後,我們要找到 flutter 的安裝目錄(這個目錄在運行窗口中可以找到,安裝工具的最後完成的時候有說明。),在目錄的 .pub-cache/bin 中會找到我們下載的 webdev
將路徑 $HOME/.pub-cache/bin 添加到環境變量中。
設置完成後在終端輸入 webdev 看看是否成功
坑:在一些終端上運行該命令會提示該命令不存在,比如 cmd,Fluent。
配置成功後就可以開始下一步了。
運行項目
首先確保 IDEA 將所需要的依賴正常安裝完成。
在IDEA終端輸入 webdev serve,當編譯完成後,打開 http://localhost:8080, 如圖,顯示出 hello world
最後說明:
項目結構
項目已經運行,簡單的看一下項目主要結構
.dart_tool 是項目打包運行編譯生成的文件
lib 是我們主要要寫的項目代碼和原有的 Flutter 基本一致
web 包含一個 html 文件和一個 main.dart
index.html 引用了 web/main.dart 編譯生成的 js 文件
而 web/main.dart 調用了 lib/main.dart,我們寫代碼基本就可以修改lib目錄下的代碼進行運行。
與 Flutter 的不同
默認包名不同,
加載的默認UI包名不同,原flutter 的包爲 import 'package:flutter/material.dart' 而 web 項目爲 import 'package:flutter_web/material.dart' 多了一個 _web。
圖標顯示問題
在 web 項目上的圖標無法顯示。
項目不報錯,IDEA的側邊欄也顯示該圖標,但是在頁面上卻無法顯示
3、打包
如果你想查看release版本,可以運行
flutter pub global run webdev serve -r
如果你想發佈製品,則可以運行
flutter pub global run webdev build
這會在項目的根路徑下生成一個build文件夾,裏面包含可以部署到服務器上的文件,如下圖所示:
其他
簡單的體驗後,基本可以用flutter開發頁面,目前來說還是有一些問題的,比如說上述的圖標加載問題,而且如果將移動端的代碼複製過來,除了包名要有修改外,很多第三方包還是對 web 不支持。編譯速度也沒有移動端那樣快,相較於傳統的web開發,編譯速度也是一個問題。
簡單的將原有的一個APP進行了一下遷移,基本涉及到具體的業務方法的地方都要重寫。