《vue cli 的部署》

550 阅读3分钟

写好一个项目之后,要部署到github上,将预览效果放上去

步骤:

1. yarn bulid

运行,会出现dist目录,然后会给出一个网址,点进去,

是vue cli的部署指南,按照教程做

2. 本地预览

还是按照上边的教程,构建完以后,怎么知道这个网站有没有按照预期效果运行,可以开一个本地预览。

做的事情:安装一个serve服务器,监听dist目录

这里注意,我们平时本地预览用的yarn serve命令,监听的是src目录,是webpack的serve

安装serve

yarn global add serve

(教程里用的是npm安装)

然后运行 serve -s dist

会出现两个地址,这个是5000端口。点进去,就是我们做的网站。

(我们之前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分支。