部署 Hexo 博客

最近更新时间:2024-02-29 14:26:41

我的收藏

操作场景

该任务指导您通过 Serverless Website 组件,快速构建一个 Serverless Hexo 站点。

前提条件

已安装 Node.js。(2020年9月1日起,Serverless 组件不再支持 Node.js10.0 以下版本,请注意升级
已安装 Git
如您未安装上述应用程序,可以参见 Hexo 安装说明

操作步骤

1. 安装

1. 通过 npm 安装最新版本的 Serverless Cloud Framework,详情请参见 安装 Serverless Cloud Framework
2. 通过 npm 安装 Hexo:
$ npm install -g hexo-cli
3. 安装 Hexo 完成后,请执行下列命令,Hexo 将会在指定文件夹中新建所需要的文件。
$ hexo init hexo # 生成 Hexo 目录
$ cd hexo
$ npm install
新建完成后,指定文件夹的目录如下:
.
├── _config.yml
├── package.json
├── scaffolds
├── source
| ├── _drafts
| └── _posts
└── themes
4. 安装完成后,可以通过hexo g命令生成静态页面:
$ hexo g # generate
说明:
如果希望在本地查看效果,也可以运行下列命令,通过浏览器访问 localhost:4000 查看页面效果。
$ hexo s # server

2. 配置

hexo目录下,创建serverless.yml文件:
$ touch serverless.yml
serverless.yml文件中进行如下配置:
# serverless.yml

component: website # (必填) 引用 component 的名称,当前用到的是 tencent-website 组件
name: hexodemo # (必填) 该 website 组件创建的实例名称

app: websiteApp # (可选) 该 website 应用名称
stage: dev # (可选) 用于区分环境信息,默认值是 dev

inputs:
src:
src: ./public # Upload static files generated by HEXO
index: index.html
# dist: ./dist
# hook: npm run build
# websitePath: ./
region: ap-guangzhou
bucketName: my-bucket
protocol: https

配置完成后,文件目录如下:
.
├── .serverless
└── hexo
├── public
├── ...
├── serverless.yml
├── ...
└── source


3. 部署

通过scf deploy命令进行部署,并可以添加--debug参数查看部署过程中的信息。 如您的账号未 登录注册 腾讯云,您可以直接通过微信扫描命令行中的二维码进行授权登录和注册。
$ scf deploy

serverless-cloud-framework
Action: "deploy" - Stage: "dev" - App: "websiteApp" - Instance: "hexodemo"

region: ap-guangzhou
website: https://my-bucket-1258834142.cos-website.ap-guangzhou.myqcloud.com


25s › hexodemo › Success
访问命令行输出的 Website URL,即可查看您的 Serverless Hexo 站点。
注意:
如果希望更新 Hexo 站点中的文章,需要在本地重新运行hexo g进行生成静态页面,再运行serverless更新到页面。

4. 移除

通过以下命令移除 Hexo 网站:
注意:
在 serverless.yml 文件所在的目录下,通过以下命令移除部署的静态网站 Website 服务。移除该应用时,只删除云函数相关的配置、代码。关联的其他云资源(如 COS、CLS 等),平台均不会关联删除,您可以前往对应产品控制台删除,避免不必要的计费。
$ scf remove --debug

DEBUG ─ Flushing template state and removing all components.
DEBUG ─ Starting Website Removal.
DEBUG ─ Removing Website bucket.
DEBUG ─ Removing files from the "my-bucket-1250000000" bucket.
DEBUG ─ Removing "my-bucket-1250000000" bucket from the "ap-guangzhou" region.
DEBUG ─ "my-bucket-1250000000" bucket was successfully removed from the "ap-guangzhou" region.
DEBUG ─ Finished Website Removal.

6s » myWebsite » done


账号配置(可选)

当前默认支持 CLI 扫描二维码登录,如您希望配置持久的环境变量/密钥信息,也可以本地创建 .env 文件:
$ touch .env # 腾讯云的配置信息
.env 文件中配置腾讯云的 SecretId 和 SecretKey 信息并保存:
# .env
TENCENT_SECRET_ID=123
TENCENT_SECRET_KEY=123
说明:
如果没有腾讯云账号,请先 注册新账号
如果已有腾讯云账号,可以在 API 密钥管理 中获取 SecretId 和 SecretKey。