docs
目录中VuePress
以本地依赖的形式被安装到你的项目中,并且配置了如下的npm scripts
:,然后在itclan/package.json
文件中 添加如下命令vuepress
非全局安装,pwa
以及其他一些插件不会生效{
"scripts": {
"docs:build": "vuepress build docs"
},
"devDependencies": {
"vuepress": "^1.5.0"
}
}
github
上创建两个仓库,一个仓库的名称:https://<USERNAME>.github.io/<REPO>/
即https://github.com/<USERNAME>/<REPO>
,或者直接仓库的名称就是username.github.io
(这个 username
是你 github
的登录账号的名称,是固定的),这个仓库的作用是用来部署线上版本用的blogcode
为什么要创建两个代码仓库呢,一个仓库不是很好么?
build
生成的dist
目录文件推送到这个远程仓库当中build
构建出来的dist
文件放到你服务器根目录下就可以了的提醒
如果您的仓库不是放置在根目录下(就是https://itclancode.github.io/blogcode/
这种形式,而非https://itclancode.github.io/
),则在config.js
的基础配置中需要更改base
的路径,它默认是指向根路径的,可以省略
module.exports = {
base: "/blogcode/"
}
在本地启动时,就会区分出来的,默认端口是8080,如果设置了base
后,后面会跟上路径 也可参考官方文档:部署到 github:https://vuepress.vuejs.org/zh/guide/deploy.html#github-pages
在itclan
(以你自己的为准)根目录下,创建一个如下的脚本文件deploy.sh
#!/usr/bin/env sh
# 确保脚本抛出遇到的错误
set -e
# 生成静态文件
npm run docs:build
# 进入生成的文件夹
cd docs/.vuepress/dist
# 如果是发布到自定义域名
# echo 'www.example.com' > CNAME
git init
git add -A
git commit -m 'deploy'
# 如果发布到 https://<USERNAME>.github.io,把下面一行注释掉,替换username即可,注意以下这是ssh的方式
# git push -f git@github.com:<USERNAME>/<USERNAME>.github.io.git master
# git push -f git@github.com:itclancode.github.io.git master
# 如果发布到 https://<USERNAME>.github.io/<REPO>
# git push -f git@github.com:<USERNAME>/<REPO>.git master:gh-pages
# git push -f git@github.com:itclancode/blogcode.git master:gh-pages
cd -
注意:
注意克隆到本地仓库代码的方式,默认是https
方式,如果你克隆代码方式是https
方式,上面的提交地止,就换成https
的,如果是 ssh
的方式的就换成 ssh
方式,否则是会出现问题的
若是ssh
的方式,可以配置秘钥:这样不用每次提交代码,都输入用户名和密码的
也可以通过在命令行终端输入git remote -v
查看克隆下的远端仓库地止的,看得出是那种方式克隆下来的
git remote -v
当你在git bash
命令行终端执行bash deploy
,注意在DOS
命令行终端下,不支持这个bash
命令,或者双击deploy.sh
这个脚本 就会自动的执行这个脚本,分别完成构建和向远端指定的仓库提交代码
有时候,我们希望执行一行命令就可以完成自动化部署,那么您需要在package.json
中的scripts
中添加deploy:bash deploy.sh
就可以了的,往后在命令行终端执行npm run deploy
或者yarn deploy
就可以自动执行该deploy.sh
脚本了的
"scripts": {
"dev": "vuepress dev docs",
"build": "vuepress build docs",
"deploy": "bash deploy.sh"
},
提示
如果自动部署脚本不成功,可以尝试如下操作
npm run docs:build
,手动构建git push -f https://itclancode.github.io.git master
当你push
,完后,地止栏里输入xxx.github.io
,如果能够访问成功,那说明部署已经成功了,如下所示
在这里我以阿里云为例:阿里云控制台
实现这一步相当于就是将自定义的域名指向gihub pages
,当访问https://itclancode.github.io/
与doc.itclan.cn
指向同一个IP
,相比于浏览器地止栏输入xxx.github.io
,直接输入域名访问要方便得多
可以在本地的命令行终端,进行ping
一下的,如
C:\Users\itclancode>ping doc.itclan.cn
正在 Ping itclancode.github.io [xxx.xxx.xxx.xxx] 具有 32 字节的数据:
请求超时。
来自 xxx.xxx.xxx.xxx的回复: 字节=32 时间=51ms TTL=48
来自 xxx.xxx.xxx.xxx 的回复: 字节=32 时间=52ms TTL=48
来自 xxx.xxx.xxx.xxx 的回复: 字节=32 时间=53ms TTL=48
xxx.xxx.xxx.xxx 的 Ping 统计信息:
数据包: 已发送 = 4,已接收 = 3,丢失 = 1 (25% 丢失),
往返行程的估计时间(以毫秒为单位):
最短 = 51ms,最长 = 53ms,平均 = 52ms
C:\Users\itclancode>ping itclancode.github.io
正在 Ping itclancode.github.io [xxx.xxx.xxx.xxx] 具有 32 字节的数据:
请求超时。
来自 xxx.xxx.xxx.xxx 的回复: 字节=32 时间=51ms TTL=48
来自 xxx.xxx.xxx.xxx 的回复: 字节=32 时间=55ms TTL=48
请求超时。
xxx.xxx.xxx.xxx的 Ping 统计信息:
数据包: 已发送 = 4,已接收 = 2,丢失 = 2 (50% 丢失),
往返行程的估计时间(以毫秒为单位):
最短 = 51ms,最长 = 55ms,平均 = 53ms
如果能 ping
得通,说明配置没有问题的
阿里云域名检测工具 如果遇到解析不成功:先仔细查看一下文档,按照文档指示一步一步的排查,官方文档很详细,但是就是不明显,得耐心一点的
在你仓库根目录下创建一个 CNAME
文件,里面内容是,就是你想要指向绑定的域名
这个文件也可以在远程仓库里创建,注意是在你那个要部署的仓库里
doc.itclan.cn
在你推上去后,在代码仓库设置页面的Custom domain中应该就可以看到变化了的,最终测试是否成功
上面的操作是将代码部署到github pages
中,然后设置一个二级域名指定github的 ip 地止
如果你想将自己的网站部署到自己服务器上,可以将npm run build生成的dist(docs/.vuepress/dist)目录文件,上传到你网站的服务器根目录下就可以了的
也可以通过ftp手动上传,或通过一些自动化集成 cli 工具,通过脚本的方式自动部署上传,都可以
受限于国外网络的原因,有时候访问github pages是有些慢的,但可以把代码部署到国内的一些代码管理的平台上:例如码云,coding上等都可以
只要你熟悉了github pages,其他平台都大同小异,在这里我以coding
为例
前提条件
前往coding 官网,注册 coding账号,若有直接登录即可
注意
新建仓库时,选择DevOps
项目作为模板,如果选择第 1,2 个,里面并没有持续部署,静态网站,云服务器等功能
step1:新建仓库
step2:选择DevOps模板
step3:选择静态网站
step4:修改静态网站配置
step5:设置自定义域名
经过上面的操作,访问在 coding
平台上部署的网站,能访问,那么就说明成功部署了的
coding
仓库底下上传了dist
文件家,部署无效解决办法
仓库根目录下上传 dist
目录下子文件内容即可解决
.vuepress/config.js
的head
中添加如下一段代码即可[
// 添加百度统计代码
"script",
{},
`
var _hmt = _hmt || [];
(function() {
var hm = document.createElement("script");
hm.src = "https://hm.baidu.com/hm.js?d61cb503bd6183sdfb7a28c4730fd83"; // 注意是你自己网站的这个参数
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(hm, s);
})();
`
],
一般过 24 小时后,百度就会统计你网站每日的访问量的,您可以根据这些信息,不断的优化您自己的网站
Google
账号,没有的话,能科学上网,注册一个即可ga
,格式是UA-00000000-0
在当前项目目录下,使用yarn
安装@vuepress/plugin-google-analytics
,插件
yarn add -D @vuepress/plugin-google-analytics
# OR npm install -D @vuepress/plugin-google-analytics
注意
如果你的项目正在使用 Google analytics
插件,推荐使用 Yarn
而不是npm
来安装所有依赖。因为在这种情形下,npm
会生成错误的依赖树
module.exports = {
plugins: [
[
'@vuepress/google-analytics',
{
'ga': '' // UA-00000000-0 ,填入你google账号分析那个ID即可
}
]
]
有时候看到一些 Github
项目里,项目前会新填一些徽章,这些徽章是可以自己自定义生成的
markdonw
语法添加图片的方式引入到你md
文件中就可以了的![掘金](https://img.shields.io/badge/%E6%8E%98%E9%87%91-10K-orange)