基於 Serverless 的 VuePress 極簡靜態網站


之前用過 Docsify + Serverless Framework 快速創建個人博客系統,雖然 docsify 也是基於 Vue,然而它是完全的運行時驅動,因此對 SEO 不夠友好。所以這次嘗試使用 VuePress 來搭建一個靜態網站,依然部署在 Serverless 架構上。

簡單介紹一下:

  • VuePress:由兩部分組成,第一部分是一個極簡靜態網站生成器;另一個部分是為書寫技術文檔而優化的默認主題。每一個由 VuePress 生成的頁面都帶有預渲染好的 HTML,也因此具有非常好的加載性能和搜索引擎優化(SEO)。同時,一旦頁面被加載,Vue 將接管這些靜態內容,並將其轉換成一個完整的單頁應用(SPA),其他頁面則會只在用戶瀏覽到的時候才按需加載。
  • Serverless Framework:在 GitHub 上有三萬顆星,業界非常受歡迎的無服務器應用框架,開發者無需關心底層資源即可部署完整可用的 Serverless 應用架構。

接下來我們分三步進行:創建項目 → 配置 yml 文件 → 部署

▎工具准備

首先確保系統包含以下環境:

  • Node.js (Node.js 版本需不低於 8.6,建議使用 10.0 及以上版本)
  • Git

1. 安裝 Serverless Framework

$ npm install -g serverless

2. 安裝 docsify

$ npm install -g vuepress

▎創建項目

# 創建項目目錄
mkdir vuepress-starter && cd vuepress-starter

# 新建一個 markdown 文件
echo '# Hello VuePress!' > README.md

# 開始寫作
vuepress dev .

# 構建靜態文件
vuepress build .

這時候可以看到 ./vuepress-starter 目錄下創建的 README.md 文檔,它會做為主頁內容渲染,直接編輯 docsify/README.md 就能更新網站內容。此時通過瀏覽器訪問 http://localhost:8080/ 即可本地預覽。

▎配置 yml 文件

在項目目錄下,創建 serverless.yml 文件:

$ touch serverless.yml

將以下內容寫入上述的 yml 文件里:

# serverless.yml

myvuepress:
  component: "@serverless/tencent-website"
  inputs:
    code:
      src: ./dist # Upload static files
      index: index.html
      error: 404.html
    region: ap-guangzhou
    bucketName: my-bucket

配置完成后,文件目錄如下:

/vuepress-starter
  ├── .vuepress
  |    ├── dist
  |    |   ├── 404.html
  |    |   └── index.html
  |    └── serverless.yml
  └── README.md

▎部署

通過 serverless 命令(可使用命令縮寫 sls )進行部署,添加 --debug 參數查看部署詳情:

$ sls --debug

如果你的賬號未 登陸注冊 騰訊雲,可以直接通過微信掃描命令行中的二維碼,從而進行授權登陸和注冊。這也是我覺得特別方便的一個地方!

部署過程中,terminal 顯示信息示意:

$ sls                                       
 (此處有張二維碼)
  Please scan QR code login from wechat. 
  Wait login...
  Login successful for TencentCloud. 

    myvuepress: 
      url: http://my-bucket-1256526400.cos-website.ap-guangzhou.myqcloud.com
      env: 

  59s › myvuepress › done

訪問命令行輸出的 url,即可查看使用 Serverless Framework 部署的 VuePress 網站啦~

最終效果

▎小結

部署過程中要注意,由於 VuePress 生成的 index.html 所在目錄默認隱藏,因此要在正確的目錄層級中創建 serverless.yml 文件,不然會導致部署失敗。

這次依然使用了騰訊雲 Serverless Framework 作為網站部署的工具,實在是因為太方便了。部署過程不到一分鍾,完全不用考慮雲上資源如何配置的問題!✌️

傳送門:

歡迎訪問:Serverless 中文網,您可以在 最佳實踐 里體驗更多關於 Serverless 應用的開發!

推薦閱讀:《Serverless 架構:從原理、設計到項目實戰》


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM