全系列
- Flutter Web網(wǎng)站之主頁框架搭建
- Flutter Web網(wǎng)站之Jetpack成型
- Flutter Web網(wǎng)站之ScrollView+GridView優(yōu)化
- Flutter Web網(wǎng)站之最簡方式實(shí)現(xiàn)暗黑主題無縫切換
- Flutter Web網(wǎng)站之Markdown展示與博客列表
簡述
曾幾何時善榛,你有沒有一個搭個人網(wǎng)站的沖動蟀苛,我這個想法在我第一次開始寫博客就有了邀摆,可就是沒有搭起來技即,直到我看到flutter有了web支持汰蜘,我就在想灼狰,是時候了掩幢,必須且一定要做或油,于是乎我就搭建了現(xiàn)在的網(wǎng)站ibaozi.cn寞忿,代碼開源至https://github.com/ibaozi-cn/ibaozi,而這次我要做的并不是基于這個網(wǎng)站開發(fā)顶岸,我再次申請了一個新域名jetpack.net.cn腔彰,讀過我之前的博客可能直到叫编,我做了一個Android Jetpack模版項(xiàng)目在線生成工具,我申請這個就是為了將Android Jetpack整合進(jìn)來霹抛,提供一個好記的域名搓逾,當(dāng)然我還有另一項(xiàng)計劃,就是做一個Flutter 生態(tài)的Jetpack杯拐,這次博客就是計劃的第一步霞篡,完全開源給大家,讓讀我博客的同學(xué)們端逼,跟我一起搭建一個網(wǎng)站朗兵,順便學(xué)習(xí)Flutter技術(shù),好了不多說了顶滩,接下來余掖,讓我們看看如何搭建這個網(wǎng)站。
環(huán)境要求
- Flutter
需要切換beta版本來支持web開發(fā)
環(huán)境搭建跳至之前博客:Flutter系列之環(huán)境搭建 - Node
下載跳至: 下載| Node.js
入門跳至: 指南
環(huán)境配置: Node.js 安裝配置| 菜鳥教程
腳手架:Express 生成器
具體操作步驟請往下看
Flutter 項(xiàng)目創(chuàng)建
假裝你已經(jīng)搭建好環(huán)境
- step 1
打開終端诲祸,切換Flutter 分支
flutter channel beta
flutter upgrade
flutter config --enable-web
flutter devices
Chrome ? chrome ? web-javascript ? Google Chrome 78.0.3904.108
一行一行執(zhí)行命令浊吏,最后看到Chrome,祝賀你成功了救氯。
-
step 2
打開Android Studio
項(xiàng)目名字找田、描述簡單修改一下,next下一步
修改一下包名着憨,然后Finish墩衙,需要等待一會兒。
項(xiàng)目創(chuàng)建成功了甲抖。這里就到這漆改,后期博客慢慢介紹每次開發(fā)的細(xì)節(jié)。
Node 項(xiàng)目創(chuàng)建
我們直接打開Flutter項(xiàng)目的Terminalmkdir node
mkdir server
cd node/server
進(jìn)入server目錄准谚,現(xiàn)在你的node環(huán)境應(yīng)該也可以了吧挫剑,好開始用Express 生成器生成項(xiàng)目
npm install express-generator -g //安裝好了略過
express --view=pug myapp
修改myapp為你自己的項(xiàng)目名。執(zhí)行完你會看到接下來
cd myapp
npm i
npm start
瀏覽器試下http://localhost:3000看到如下就ok了
開始項(xiàng)目關(guān)聯(lián)
- step 1
在Flutter項(xiàng)目中執(zhí)行
flutter build web
構(gòu)建web包柱衔,最終會在build文件夾下生成web包樊破,web包下就是網(wǎng)站的相關(guān)文件。-
step 2
copy web包下的文件到node項(xiàng)目的public文件下
我創(chuàng)建了一個public_flutter_web唆铐,為了是以后文件區(qū)分哲戚,也建議你做一樣的操作
-
step 3
改造express,因?yàn)槟J(rèn)express是展示 views包下的網(wǎng)頁的艾岂,而且默認(rèn)不是html實(shí)現(xiàn)顺少。將下圖中文件全部刪除即可
打開 app.js文件,刪除delete標(biāo)記部分,添加add標(biāo)記部分
- step 4
保存修改脆炎,重新將服務(wù)npm start梅猿,再打開http://localhost:3000
看到如下:
大功告成,這樣就行了嗎腕窥,nono粒没,對于一個懶惰的人來說,我們要寫一些腳本簇爆,輔助項(xiàng)目自動構(gòu)建癞松。 -
step 5
由于node項(xiàng)目目錄太深,在命令行運(yùn)行也很麻煩入蛆,我們寫個shell腳本响蓉,來幫我搞定。在flutter項(xiàng)目根目錄創(chuàng)建bin文件夾哨毁,用來放置我們的腳本
右鍵New File 命名為 test_start_node.sh枫甲,內(nèi)容如下
#!/usr/bin/env bash
node node/server/bin/www
也很簡單。這個腳本就是輔助我們開啟node服務(wù)扼褪。當(dāng)然我們還會有flutter項(xiàng)目構(gòu)建的一些腳本想幻,自動copy文件到指定目錄等等,這些之后慢慢補(bǔ)全哦话浇。
最后
將代碼上傳至github
ibaozi-cn/flutter-jetpack
最后的最后
登上你的云服務(wù)器脏毯,通過git 將項(xiàng)目下載到服務(wù)器上,這里我們需要工具輔助我們服務(wù)部署
我選擇pm2+nginx來將我的服務(wù)啟動起來
pm2:環(huán)境搭建
nginx:環(huán)境搭建
這里不詳細(xì)說了幔崖,網(wǎng)上有一片大海食店,需要你去浪。有問題的留言我赏寇,我可以協(xié)助你吉嫩。
最終通過pm2 和 nginx ,項(xiàng)目完美運(yùn)行
jetpack.net.cn嗅定,沒錯你看到的是jetpack.ibaozi.cn自娩,哈哈,域名還沒下來渠退,先用了之前的ibaozi.cn,后面我們會遷移到j(luò)etpack.net.cn忙迁。
總結(jié)
下期我們就開發(fā)Flutter 主頁,遇到什么智什,需要借助什么动漾,怎么寫丁屎,為什么這么寫荠锭,我們將在未來的博客中,帶你一步步實(shí)現(xiàn)一個完整的網(wǎng)站晨川,隨我寫下去证九。如果你想?yún)⑴c開發(fā)删豺,請私聊我,合作共贏愧怜,加油呀页。