赞
踩
如果你本着show me the code的原则,想把自己写的Vue项目拿出来让大家看看。如果你不想花大把的银子去给马爸爸买个1个核1G内存1M带宽的云服务器。那你还在等什么,现在就来薅巨硬爸爸的羊毛吧!!!
actions是个什么东西呢,其实他就是github的CI/CD工具,如果你用过gitlab的runner那你对CI/CD这个概念肯定不会陌生。
如果你对CI/CD没啥概念,那我推荐你百度一下有个大概的了解就行。
workflow相当于gitlab里的gitlabl-ci.yml都是定义了一个自动化的流程,在这个流程里我们可以在允许的范围内为所欲为。
废话不多说,我们直接进入正题,如何使用actions部署vue项目。
我们这使用vue-cli直接生成一个项目。打开控制台,输入以下命令:
vue create vue-actions-deploy
然后vue就会让我们选预设,这里我们就直接选DEFAULT,回车走起。
然后就进入了安装过程,让我们起身动动休息一下。
然后就好啦。
我们需要在文件中新加一行
"homepage":"https://[用户名].github.io/[项目名]"
我们在项目的根目录下新建一个 vue.config.js文件,用于配置vue项目。
module.exports = {
outputDir: 'dist',
publicPath: process.env.NODE_ENV === 'production'
? '/[项目名]/'
: '/'
}
这需要注意一下,由于github pages默认的地址是包含子目录的,所以我这这需要指定一下publicPath的路径为我们的项目名。
完成以上步骤后,我们再通过以下步骤上传一下代码。
git init
git add .
git commit -m "first commit"
git remote add origin [仓地址]
git push -u origin master
在正式开始之前,我们要做几件准备工作。
现在开始进入正题,让我们开启action之旅吧~!
name: buildAndDeploy on: push jobs: build-and-deploy: runs-on: ubuntu-latest # 我们选择使用最新的ubuntu系统 steps: - name: checkout uses: actions/checkout@master # 将代码拷贝到虚机中 - name: buildAndDeploy uses: JamesIves/github-pages-deploy-action@master env: ACCESS_TOKEN: ${{ secrets.ACCESS_TOKEN }} # 使用刚新建的secret BRANCH: gh-pages # 存放产物的分支名称 FOLDER: dist # 存放build后产物的目录 BUILD_SCRIPT: npm install && npm run build # 执行的命令
最后让我们开启github pages就可以啦。
在完成了基本的操作后,我们开始进入进阶阶段。
觉得默认的域名太丑?没关系巨硬爸爸给你自定义域名。
记录类型:这要选择的是 CNAME
主机记录:我们自己起一个二级域名
记录值:这要填 [Github用户名].github.io
以上操作完成后,我们打开自定义域名,然而我们啥都看不见,打开控制台发现有错误信息。
这是为什么呢?为什么呢!?为什么呢!!?
原来是因为我们打包时指定了子目录,而我们的自定义域名并没有包含子目录,所以我们修改一下 vue.config.js 文件
module.exports = {
outputDir: 'dist',
publicPath: '/'
}
等action重新跑完,再访问我们的自定义域名就可以正常访问啦。
现在自定义域名也有了,但怎么保存报文传输时的安全性呢?自然我们就要开启https啦。巨硬爸爸也很贴心的为我们准备了一键开启https的方法:
不知道你们有没有遇到过这样的场景,代码中用到了第三方库,这个库还需要你进行身份认证才可以正常使用,在本地开发的时候,我们可以使用 .env.local,通过环境变量获取uuid和token,但现在我们想把build的流程通过github的action来实现,有几种实现方式:
很明显,第一种有点缺心眼,第二种实现也不适合敏感信息,控制一下url什么的倒是可以。可能你会说第三种设置环境变量的方式也是要明文写验证信息也是不安全的啊,但别忘了我们还有secrets啊。
...
BUILD_SCRIPT: export VUE_APP_ENV_TEST="${{ secrets.ENV_TEST }}" && npm install && npm run build # 执行的命令
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。