文章目录
- 一、什么是VuePress
- 二、搭建项目
- 三、部署上线
- 四、可能用到的Markdown语法
- 五、出现的错误及解决
一、什么是VuePress
VuePress 是尤雨溪(vue.js 框架作者)4月12日发布的一个全新的基于 vue 的静态网站生成器,实际上就是一个 vue 的 spa 应用,内置 webpack,可以用来写文档。详见 VuePress中文网
其实类似的建站工具有很多,比如 WordPress、Jekyll、Hexo 等,其中 WordPress 需要自己购买虚拟主机,不考虑;Jekyll 是 Github-Page 默认支持的,听说操作比较复杂,没有用过不做过多评价了;Hexo 之前一直在用,但一直觉得主题不好看,风格不够简洁优雅。自从遇见 VuePress,嗯,就是它了~
VuePress 有很多优点:
- 界面简洁优雅(个人感觉比 HEXO 好看)
- 容易上手(半小时能搭好整个项目)
- 更好的兼容、扩展 Markdown 语法
- 响应式布局,PC端、手机端
- Google Analytics 集成
- 支持 PWA
二、搭建项目
1.新建项目文件夹
2.在该新建文件夹下,全局安装VuePress
npm install -g vuepress
3.进入vuepressBlogDemo文件夹,初始化项目
npm init
4.创建文件夹和文件
vuepressBlogDemo
├─── docs
│ ├── README.md
│ └── .vuepress
│ ├── public
│ └── config.js
└── package.json
5.在config.js 文件中配置网站标题、描述、主题等信息
module.exports = {
title: 'Chen\'s blog',
description: '我的个人网站',
head: [ // 注入到当前页面的 HTML <head> 中的标签
['link', { rel: 'icon', href: '/logo.jpg' }], // 增加一个自定义的 favicon(网页标签的图标)
],
base: '/', // 这是部署到github相关的配置
markdown: {
lineNumbers: false // 代码块显示行号
},
themeConfig: {
nav:[ // 导航栏配置
{text: '前端基础', link: '/accumulate/' },
{text: '算法题库', link: '/algorithm/'},
{text: '微博', link: 'https://baidu.com'}
],
sidebar: 'auto', // 侧边栏配置
sidebarDepth: 2, // 侧边栏显示2级
}
};
6.配置首页结构
将刚开始创建的README.md文件内容改成如下:
---
home: true
heroImage: /img/banner.png
heroText: lhs的日常记录
tagline: 喜欢打王者,只会射手
features:
- title: 是个160斤的胖子
details: 是个160多斤的胖子,想要减肥,哪天你看不到这段话了,那说明我已经瘦下来了
7.在package.json 文件中添加两个启动命令
"scripts": {
"dev": "vuepress dev docs",
"build": "vuepress build docs"
}
8.编译项目并在浏览器中展示
npm run dev
三、部署上线
采用使用Github Pages部署网页
1.登录个人github并新建仓库
2.在项目文件夹下新建deploy.sh发布脚本,或者使用gh-pages插件
方法1:使用deploy.sh文件
#!/usr/bin/env sh
# 确保脚本抛出遇到的错误
set -e
# 生成静态文件
npm run docs:build
# 进入生成的文件夹
cd docs/.vuepress/dist
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>/<USERNAME>.git master:gh-pages
cd -
在package.json文件夹中script添加发布命令
"deploy": "bash deploy.sh"
方法2:npm或yarn下载gh-pages插件
npm i -D gh-pages
yarn add -D gh-pages
在package.json文件夹中script下添加命令
"deploy": "gh-pages -d docs/.vuepress/dist"
3.运行命令
npm run deploy
完成打包并上传github,可以查看该项目的github-pages
四、可能用到的Markdown语法
1.代码高亮
在 .md 文件中书写代码是。可在 ```后面添加js 、html、json等格式类型,代码可按照指定类型高亮
2.自定义容器
::: tip 提示
this is a tip
:::
::: warning 注意
this is a tip
:::
::: danger 警告
this is a tip
:::
3.支持Emoji
Emoji大全 🎁 Emoji cheat sheet for GitHub, Basecamp, Slack & more (webfx.com)
4.支持PWA
配置方法如下:
config.js文件中增加
head: [ // 注入到当前页面的 HTML <head> 中的标签
['link', { rel: 'manifest', href: '/photo.jpg' }],
['link', { rel: 'apple-touch-icon', href: '/photo.jpg' }],
],
serviceWorker: true // 是否开启 PWA
public 文件夹下新建 manifest.json 文件,添加
{
"name": "张三",
"short_name": "张三",
"start_url": "index.html",
"display": "standalone",
"background_color": "#2196f3",
"description": "张三的个人主页",
"theme_color": "blue",
"icons": [
{
"src": "./photo.jpg",
"sizes": "144x144",
"type": "image/png"
}
],
"related_applications": [
{
"platform": "web"
},
{
"platform": "play",
"url": "https://play.google.com/store/apps/details?id=cheeaun.hackerweb"
}
]
}
五、出现的错误及解决
1.Vuepress无法打包出现错误,找不到client.json文件
发现电脑的环境变量NODE_ENV=development,打包的时候需要修改为production
2.打包后文件无法正常浏览
使用npm run build 可以生成dist文件,在本地用浏览器打开该文件夹的html会出现错误,可以在该文件夹下使用git命令,将内容推送到github,部署到github-pages后可以正常浏览