flutter for web

flutter筆記匯總

谷歌開發(fā)者大會上宣布flutter1.9正式發(fā)布,并且flutter_web已經合到dev合master。
首先切換到master并升級flutter到最新版本

flutter channel master
flutter upgrade

安裝webdev

flutter pub global activate webdev

這里需要注意一下,安裝之后看提示還要添加環(huán)境變量

Installed executable webdev.
Warning: Pub installs executables into $HOME/.pub-cache/bin, which is not on your path.
You can fix that by adding this to your shell's config file (.bashrc, .bash_profile, etc.):

  export PATH="$PATH":"$HOME/.pub-cache/bin"

Activated webdev 2.5.1.

打開~ > .bash_profileexport PATH="$PATH":"$HOME/.pub-cache/bin"添加進去,然后更新環(huán)境變量。

source ~/.bash_profile

到這webdev就完事了,命令行敲webdev測試一下

webdev
/Users/xxx/.pub-cache/bin/webdev: line 7: dart: command not found

驚不驚喜,意不意外,這是因為dart沒有添加環(huán)境變量。
.bash_profile中添加dart環(huán)境變量

export DART_HOME=/Users/xxx/sdk/flutter/bin/cache/dart-sdk/bin
export PATH=${DART_HOME}:${PATH}

刷新環(huán)境變量

source ~/.bash_profile

重新試一下webdev如果顯示如下,說明沒有問題

A tool to develop Dart web projects.

Usage: webdev <command> [arguments]

Global options:
-h, --help       Print this usage information.
    --version    Prints the version of webdev.

Available commands:
  build   Run builders to build a package.
  help    Display help information for webdev.
  serve   Run a local web development server and a file system watcher that rebuilds on changes.

Run "webdev help <command>" for more information about a command.

這里需要注意一下,如果沒有用flutter自帶的dart-sdk而是單獨安裝,這里可能會因為dart版本與flutter版本不匹配而出現(xiàn)如下提示

Can't load Kernel binary: Invalid kernel binary format version. 
No active package webdev.

出現(xiàn)這種情況把dart卸載

brew uninstall dart

然后如前邊所述將flutter內置的dart-sdk添加到環(huán)境變量就可以了。
啟用flutter_web

flutter config --enable-web

出現(xiàn)如下提示

Setting "enable-web" value to "true".

接下來創(chuàng)建一個flutter項目

flutter create myapp
cd myapp

可以看見目錄下多了一個web文件夾里邊是一個index.html,內容如下

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>myapp</title>
</head>
<body>
  <script src="main.dart.js" type="application/javascript"></script>
</body>
</html>

從這里可以看見,最終也是編譯成js文件。
先看一下已連接的設備

?  myapp flutter devices
3 connected devices:

macOS  ? macOS  ? darwin-x64     ? Mac OS X 10.14.5 18F132
Chrome ? chrome ? web-javascript ? Google Chrome 76.0.3809.132
Server ? web    ? web-javascript ? Flutter Tools

這里合之前相比多了ChromeServer

在chrome里跑一下項目

flutter run -d chrome

效果如下,一個熟悉的頁面。

image.png

可以看見大多數(shù)都是自定義標簽,當然也不全是自定義,比如中間那一行文本和數(shù)字就是p標簽,關于渲染flutter用了CSS Paint,就是用css畫圖,挺有意思的api。
sources,然后command+o
image.png

可以看見這里并不是js文件,而是dart文件。
選擇main.dart,看到的就是main.dart的源碼。
接下來說一下調試,直接用chrome的開發(fā)者工具查找DOM是比較困難的,這個時候需要android Studio,在android Studio中打開myapp,設備選擇chrome(web),點綠色的三角跑起來
image.png

View > Tool Windows下選擇Flutter Inspector
image.png

打開之后是這個樣子
image.png

可以看到不知道多少個層級
image.png

這個按鈕可以在頁面上顯示widget的邊界
image.png

這個準星一樣的按鈕相當于瀏覽器的審查元素,點擊之后頁面左下角會出現(xiàn)一個放大鏡,想要重新在頁面上選擇元素需要點擊放大鏡,也可以在Inspector之中直接選擇,頁面上對應的元素會高亮。
這里再說一下另一種方式,chrome內置了Dart DevTools
項目跑起來之后點下邊這個按鈕
image.png

chrome會彈出個新窗口
image.png

Flutter Insector類似,但是更好用一點。

關于dart文件的調試,和js一樣可以打斷點

image.png

接下來是打包

?  myapp flutter build web
Compiling lib/main.dart for the Web...                             26.4s

build結束后看一下build > web目錄下

?  web ls
assets           index.html       main.dart.js     main.dart.js.map

dart被編譯成了js

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,967評論 6 531
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,273評論 3 415
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,870評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,742評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,527評論 6 407
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,010評論 1 322
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,108評論 3 440
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,250評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 48,769評論 1 333
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,656評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,853評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,371評論 5 358
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 44,103評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,472評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,717評論 1 281
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,487評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,815評論 2 372

推薦閱讀更多精彩內容