在前面篇章我們使用控制臺編寫代碼、管理我們的內(nèi)容。從這一節(jié)開始使用「命令行工具 CLI」 來進(jìn)行開發(fā)。
首先我們需要安裝 CLI 工具。
安裝云開發(fā) CLI 之前需要安裝 Node.js。如果本機(jī)沒有安裝 Node.js,請從 Node.js 官網(wǎng)下載二進(jìn)制文件直接安裝,建議選擇 LTS 版本,版本必須為 8.6.0+。
可以使用 npm 來安裝,在命令行輸入如下命令:
npm i -g @cloudbase/cli
如果遇到提示權(quán)限不足的情況,請加 sudo 命令,如下:
sudo npm i -g @cloudbase/cli
如果提示輸入密碼,請輸入本機(jī)的當(dāng)前用戶的開機(jī)密碼。
測試是否安裝成功,可以使用 -v 命令,如下:
cloudbase -v
如果正確返回版本號,代表安裝成功。
這時候你發(fā)現(xiàn) cloudbase 這么從長,足足 9 個字母,難拼寫難記憶;其實可以使用 tcb 代替 cloudbase,比如:
tcb -v
可以這么理解,控制臺是一個平臺,可以在上面使用 Web IDE(cloud studio) 編寫代碼,也可以管理各種配置,例如安全域名、獨立域名設(shè)置、文件管理等等。但是有一些操作其實可以放到命令行的,比如靜態(tài)網(wǎng)站部署是不是可以一行命令,就可以將文件上傳上去。因此:
在 靜態(tài)網(wǎng)站部署怎么玩 中提到可以通過控制臺部署靜態(tài)文件。其實,CLI 也支持部署命令。舉個例子????,Vuepress 生成 dist 的目錄下面的文件都可以部署到靜態(tài)網(wǎng)站托管上面。我們可以在 Vuepress 項目的 package.json 中加一個命令:
{
"scripts": {
"dev": "vuepress dev docs",
"build": "vuepress build docs",
"deploy": "tcb hosting:deploy docs/.vuepress/dist/ -e 你的環(huán)境 ID"
},
"dependencies": {
"vuepress": "*"
}
}
首先執(zhí)行 login 命令,獲取鑒權(quán),這樣才能對環(huán)境和資源進(jìn)行操作:
tcb login
然后可以執(zhí)行
tcb hosting:deploy docs/.vuepress/dist/ -e 你的環(huán)境 ID
如果按照上面對 package.json 進(jìn)行了配置,也可以執(zhí)行:
npm run deploy
之后就可以看到整個上傳的過程以及狀態(tài),比如當(dāng)前站點的部署效果如下:
LEEHUAWANG-MB0:vuepress wanglihua$ npm run deploy
> @ deploy /Users/wanglihua/code/cloud-developer/vuepress
> tcb hosting:deploy docs/.vuepress/dist/ -e 你的環(huán)境 ID
文件傳輸中 [=========================================] 100% 0.0s
?
部署完成 ???? https://open-cloud-5d89b0-1300954686.tcloudbaseapp.com
? 文件共計 43 個
? 文件上傳成功 43 個
┌──────┬──────────────────────────────────┐
│ 狀態(tài) │ 文件 │
├──────┼──────────────────────────────────┤
│ ? │ 404.html │
├──────┼──────────────────────────────────┤
│ ? │ index.html │
├──────┼──────────────────────────────────┤
│ ? │ posts/01.html │
├──────┼──────────────────────────────────┤
│ ? │ posts/03.html │
├──────┼──────────────────────────────────┤
│ ? │ posts/04.html │
├──────┼──────────────────────────────────┤
│ ? │ posts/02.html │
├──────┼──────────────────────────────────┤
│ ? │ assets/img/search.83621669.svg │
├──────┼──────────────────────────────────┤
│ ? │ assets/css/0.styles.5eaf5755.css │
├──────┼──────────────────────────────────┤
│ ? │ assets/js/10.97930671.js │
├──────┼──────────────────────────────────┤
│ ? │ assets/js/12.ae757b08.js │
├──────┼──────────────────────────────────┤
│ ? │ assets/js/app.840f7c0a.js │
└──────┴──────────────────────────────────┘
? 文件上傳失敗 0 個
這里使用到的就是 tcb hosting:deploy
命令,第一個參數(shù)你的目錄地址,-e 后面跟上你的環(huán)境 ID。
當(dāng)然不僅可以用于 Vuepress,其實任何需要托管的頁面或者內(nèi)容都可以通過 tcb hosting:deploy
命令進(jìn)行操作。
tcb hosting
命令是一個集合,不止一個 deploy,還有刪除和查看文件列表等子命令,具體見 CLI-靜態(tài)托管
一個命令搞定整個靜態(tài)網(wǎng)站的部署,當(dāng)然云函數(shù)也不在話下。
<span style="color:#1336EE;">第 0 步:tcb login</span>
同樣是登錄,只有登錄了才能獲取環(huán)境的操作權(quán)限,這個道理都懂的。
tcb login
<span style="color:#1336EE;">第 1 步:tcb init</span>
選擇環(huán)境和初始化函數(shù)模板
tcb init
如下圖,按上下鍵選擇環(huán)境:
然后選擇語言和模板,這里選擇 Node.js 和云函數(shù)的簡單模板:
執(zhí)行完成的結(jié)果如下:
LEEHUAWANG-MB0:code wanglihua$ tcb init
? 選擇關(guān)聯(lián)環(huán)境 · serverless80 - [你的環(huán)境 ID]
? 請輸入項目名稱 · cloudbase-demo
? 選擇開發(fā)語言 · Node
? 選擇云開發(fā)模板 · Hello World
? 已存在同名文件夾:cloudbase-demo,是否覆蓋? (y/N) · true
? 創(chuàng)建項目 cloudbase-demo 成功!
???? 執(zhí)行命令 cd cloudbase-demo 進(jìn)入項目文件夾!
???? 執(zhí)行命令 cloudbase functions:deploy app 部署云函數(shù)
創(chuàng)建的項目目錄如下圖:
整個目錄中最核心的文件是 cloudbaserc.js
,該文件中是整個項目的配置。比如:
例如在 functions 目錄下有 app 目錄,即函數(shù)的名稱為 app,其配置信息為:
<span style="color:#1336EE;">第 2 步:tcb functions:deploy</span>
我們按照剛才創(chuàng)建項目完成的命令行提示進(jìn)行執(zhí)行:
cd cloudbase-demo
tcb functions:deploy app
命令行執(zhí)行結(jié)果如下,并且可以根據(jù)提示查看函數(shù)列表或者創(chuàng)建 HTTP 觸發(fā):
<span style="color:#1336EE;">第 3 步:tcb functions:list</span>
查看函數(shù)是否部署完成及其狀態(tài),如下圖:
更多可參見 CLI-云函數(shù)命令。
更多建議: