写好一个项目之后,要部署到github上,将预览效果放上去
步骤:
1. yarn bulid
运行,会出现dist目录,然后会给出一个网址,点进去,
2. 本地预览
做的事情:安装一个serve服务器,监听dist目录
这里注意,我们平时本地预览用的yarn serve命令,监听的是src目录,是webpack的serve
安装serve
yarn global add serve
(教程里用的是npm安装)
然后运行 serve -s dist
(我们之前yarn serve的本地预览是8080端口)
这两个命令是为了检查dist是否正确打包
点进去,如果效果正确,就可以ctrl+C关掉serve了。一次build之后代码就固定了,如果要修改代码,要重新build。
3. 部署到Github Pages
还是按照教程。我们选择部署到仓库
这里要新建一个仓库用来展示网站。我们之前已经有了一个仓库,是用来放源代码的,在构建之后,把本地仓库里的代码提交到Github上。
但是这里要新建另外一个仓库。
比如存放源代码的仓库叫EasyAccounting。对应地,新建一个EasyAccounting-website仓库,建好之后不需要git remote和git push。直接按照教程:在项目目录下,创建内容如下的 deploy.sh (可以适当地取消注释) 并运行它以进行部署:
#!/usr/bin/env sh
# 当发生错误时中止脚本
set -e
# 构建
npm run build
# cd 到构建输出的目录下
cd dist
# 部署到自定义域域名
# echo 'www.example.com' > CNAME
git init
git add -A
git commit -m 'deploy'
# 部署到 https://<USERNAME>.github.io
# git push -f git@github.com:<USERNAME>/<USERNAME>.github.io.git master
# 部署到 https://<USERNAME>.github.io/<REPO>
git push -f git@github.com:<USERNAME>/<REPO>.git master:gh-pages
cd -
因为我们部署到一个仓库,所以取消部署到仓库地注释。并且把仓库地址模板替换成我们刚刚新建地仓库的SSH。
然后在vue.config.js里添加:
module.exports = {
publicPath: process.env.NODE_ENV === 'production'
? '/my-project/'
: '/'
}
my-project替换成我们新建的仓库的名字,也就是EasyAccounting-website
然后运行:sh deploy.sh
运行之后,可以发现,他就是按照.sh文件里写的那样,先构建,进入dist目录,把dist目录的代码提交,push到我们新建的Github仓库里。
然后去这个仓库里刷新,发现代码就是dist目录里的文件。所以这个仓库就是预览网站用的仓库。那么如何预览呢?还是打开setting,下拉到github pages,发现已经为我们自动创建了一个网址,点进去,就是我们网站的效果了。
总结
这个技术的本质:
我们原来有一个存放源代码的仓库(旧仓库),再创建一个用来预览网站的仓库(新仓库)
旧仓库里有一个重要的目录,src。我们通过运行yarn build ,生成一份dist目录,但是我们不把dist目录放到旧仓库里,而是放到另外一个新仓库里。如果我们又修改了源代码,就需要再次build,再生成新的dist,再把新的dist目录push到新仓库里。为了让这个过程自动化,我们添加了一个deploy.sh文件,自动为我们做这些事情。所以我们之后如果修改了代码,直接运行这个sh文件就可以。
而且,这个新仓库会自动开启github pages功能,它本身就是ph-pages分支,而不是master分支。