如何将 Vue 应用部署到 GitHub Pages
当你完成了一个只有静态内容的网站如个人博客或网页模板,你想发布到网络上供别人访问。通常你需要部署到一个 Http 服务器上,比如阿里云、腾讯云等市场上各种云服务器,然而单独维护一个服务器付出的精力和金钱是巨大的,而 GitHub Pages 完全能胜任这项工作
当你完成了一个只有静态内容的网站如个人博客或网页模板,你想发布到网络上供别人访问。通常你需要部署到一个 Http 服务器上,比如阿里云、腾讯云等市场上各种云服务器,然而单独维护一个服务器付出的精力和金钱是巨大的,而 GitHub Pages 完全能胜任这项工作
在你每次对代码变动时,都要手动执行 npm run build 操作来构建文件,然后再将构建好的文件推送到 gh-pages 分支来重新部署 GitHub Pages。这些操作是一成不变且耗时耗力的,那么能否让机器替代我们来执行它们,好让部署变得“水到渠成”呢?
当你完成了一个只有静态内容的网站如个人博客或网页模板,你想发布到网络上供别人访问。通常你需要部署到一个 Http 服务器上,比如阿里云、腾讯云等市场上各种云服务器,然而单独维护一个服务器付出的精力和金钱是巨大的,而 GitHub Pages 完全能胜任这项工作。
作为当下最流行的静态站点托管平台,GitHub Pages 拥有以下让人交口称誉的理由:
已经准备好开始了吗?如果你对 GitHub Pages 的操作还不熟悉,那么请跟随以下步骤来逐步完成你的网站部署。
这里的构建文件指的是运行 npm run build
生成的 dist
目录,我们要托管到 GitHub Pages 的就是这个目录下的内容。
注意
在 build 之前,请将 publicPath 设为 /[仓库名称]/
,否则 GitHub Pages 将无法正常找到资源文件。
为了不污染主分支的文件结构,我们推荐在远程仓库新建一个分支专门用来推送 dist
目录,并将这个分支命名为 gh-pages
。为了做到这一点,我们使用了 push-dir
首先在项目内安装这个依赖:
npm install push-dir --save-dev
接着我们在 package.json
中添加一条新的脚本命令:
{
"scripts": {
"deploy": "push-dir --dir=dist --branch=gh-pages --cleanup"
}
}
这个命令的意思是将 dist
目录推送到 gh-pages
,完了之后删除本地对应的分支。运行 npm run deploy
成功后,你应该能在 GitHub 上看到这个分支的内容了。
进入我们项目所在的仓库设置里面,找到 Options -> GitHub Pages
,将 GitHub Pages 构建在 gh-pages
上,像这样设置:
设置成功后,你的网站就能通过 https://[GitHub 账号名].github.io/[仓库名]/
这样的格式访问了。通常到这一步就足够了,不过如果你希望为你的网站自定义域名,那么请看下一节的内容。
假设你已经拥有了自己的域名,那么你可以对你的 GitHub Pages 网站使用子域名,子域名配置是通过 DNS 提供商使用 CNAME 记录配置的,即子域名可以通过添加一个 CNAME 类型的主机记录,记录值为 [GitHub 账号].github.io
设置。比如本站的父级域名是 leoku.top
,子域名为 docs
。
完成上面的操作后,在 public
文件夹下创建一个名为 CNAME
的文件,然后在里面写入你的域名,比如:
venus.leoku.top
接下来就是 npm run build
和 npm run deploy
的步骤了,最后再在仓库设置中填入自定义域名就完成所有操作了。
注意
使用自定义域名的话就不用再设置 publicPath 了,保持默认即可。
Created by @LeoKu. Powered by Vue.js.
Open-source MIT Licensed.