基于 Serverless 的 VuePress 极简静态网站

2020-03-03 12:32:06 +08:00
 Aceyclee

之前用过 Docsify + Serverless Framework 快速创建个人博客系统,虽然 docsify 也是基于 Vue,然而它是完全的运行时驱动,因此对 SEO 不够友好。所以这次尝试使用 VuePress 来搭建一个静态网站,依然部署在 Serverless 架构上。

简单介绍一下:

接下来我们分三步进行:创建项目 → 配置 yml 文件 → 部署

▎工具准备

首先确保系统包含以下环境:

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 作为网站部署的工具,实在是因为太方便了。部署过程不到一分钟,完全不用考虑云上资源如何配置的问题!✌️

参考:

2553 次点击
所在节点    Vue.js
4 条回复
cyio
2020-03-03 12:39:38 +08:00
使用 server 只是做了静态托管?
Chingim
2020-03-03 12:40:59 +08:00
不就是静态文件吗。。。。这也要强行 serverless
Chingim
2020-03-03 12:41:36 +08:00
这种场景应该用类似 s3 之类的玩意
Aceyclee
2020-03-03 21:23:52 +08:00
@cyio 诶……写得比较简单,全栈解决方案的没写

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/649373

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX