-1. 常用命令简化和组合
1 | hexo g # 等同于hexo generate,生成静态文件 |
当本地不想使用默认的4000端口时(比如在服务器上,默认使用80端口),可以使用 port 命令更改启动端口
另外,hexo支持命令合并,比方说 生成静态文件 → 本地启动80端口,我们可以执行
1 | hexo s -g -p 80 |
生成静态文件并发布
1 | hexo g -d |
hexo文件结构及作用
0. 准备
- 注册github账号
- 本地安装好git
1. 创建github仓库
仓库名为
1 | [your_github_username].github.io |
仓库名字一定不能写错!
2. 安装node
Node.js主要用于安装hexo,npm开头的命令都依赖于Node.js
nvm来管理node.js的版本真的很方便,这样就可以根据自己的需要来回切换node.js版本!
安装nvm管理工具(先关掉360等软件,不然会弹出警告!)
从官网下载安装包 https://github.com/coreybutler/nvm-windows/releases,下载红框里面的那个
解压之后,nvm-setup.exe安装
如果出现版本号,即安装成功
查看可用的node.js版本号
1 | nvm ls anaillable |
不要装太低!低了npm不能用,后面用了16.20.2
安装完检查
1 | node -v |
随意切换node版本
1 | nvm use [版本号] |
查看所有node版本
1 | nvm ls |
3. 安装hexo
(1)安装hexo
鼠标右键任意地方,选择Git Bash,使用以下命令
1 | npm install hexo-cli -g |
(2)创建放置博客文件的文件夹
- hexo文件夹,我放置在D盘,D:\blog\hexo
- 最好不要在中文路径下面,会出现莫名其妙的错误
- 注意:==以后进行hexo操作都要进入到此文件夹中==
(3)初始化hexo
- 初始化进入hexo文件夹,鼠标右键选择“Git Bash”,执行以下命令,
- 这时候会在该文件夹中创建网站所需要的文件
1 | hexo init |
执行完毕后,将会生成以下文件结构:
1 | . |
(4)安装依赖包
1 | npm install |
会在Hexo目录中安装 node_modules
(5)生成静态文件
1 | hexo g |
(6)预览
此时最基本的网站已经搭建好了,只不过是在本地放着,我们可以先预览一下
在git中执行
1 | hexo s |
这时候,会在本地开启一个http服务,监听4000端口
我们在浏览器访问http://127.0.0.1:4000
3’. 更新hexo
查看hexo版本
1 | hexo version |
npm-check检查更新
1 | npm install -g npm-check |
npm-upgrade更新
1 | npm install -g npm-upgrade |
这时候会有一个选择菜单式的持续输出供你选择依赖包的更新与否
其中的 npm install
可以加上参数 -save
,这样
- 会把依赖包安装到 node_modules 目录中
- 会在package.json的dependencies属性下添加依赖包的名称和版本号
- 之后运行npm install命令时,会自动安装依赖包到node_modules目录中
如果不加save参数的话
- 之后把X包安装到node_modules目录中
- 不会添加到 package.json 文件的 dependencies 属性中。
再查看hexo文件夹下面的 package.json 文件的 dependencies 属性,可以看到hexo的版本和依赖包已经更新了。
4. 部署本地文件到github
本地文件要发布到github上面,则需要使本地git和互联网上的通信。怎么通信呢?
有两种方法,https和ssh公钥方式。
使用https的话需要每次输入密码,不过配置起来简单。
常用的是ssh公钥的方式。
先来在本地初始化一下git设置吧
a. 本机git初始设置
1、设置姓名和邮箱地址
(安装git时,已经配置好的话,可以跳过这一步)
终端输入:任意目录中都可以
1 | git config --global user.name "your name" |
我用的是我的用户名和邮箱设置的
邮箱仅仅是识别用的key,不一定是真实存在的邮箱
设置完成会在~/.gitconfig文件中生成如下配置
gitconfig这个文件在C:\Users\zhx
1 | cat ~/.gitconfig |
我用的是我的用户名和邮箱设置的,设置完成会在~/.gitconfig文件中生成如下配置
2、本地生成ssh key
1 | ssh-keygen -t rsa -C zhx@qq.com |
-
SSH 为 [Secure Shell](https://baike.baidu.com/item/Secure Shell) 的缩写,为建立在应用层基础上的安全协议。
-
SSH 是较可靠,专为远程登录会话和其他网络服务提供安全性的协议。
-
和在linux生成的ssh一样,也可以生成的秘钥时候设置私钥密码(我后来设置了一个没有密码的ssh,每次输入太麻烦了)
-
-t = The type of the key to generate
-
-C = comment to identify the key
所以这个注释你可以输入任何内容,很多网站和软件用这个注释作为密钥的名字
-
会提示创建文件的路径,以及设置密码(直接回车,即为空密码)
-
生成id_rsa密钥和id_rsa.pub公钥
-
known_hosts文件,这个文件会把远程计算机的相关信息记录在这个文件里,确保你下次登录的时候是相同的服务器,避免遭受hijack之类的攻击。如果登录的服务器信息有所变动,那你登录的时候就会提示你,然后登录失败。
3、把本机生成的公开的秘钥添加到github中
在C:\Users\zhx\.ssh
下
1 | cat ~/.ssh/id_rsa.pub |
将公钥复制下来
4、将公钥放在github上
打开github登陆后,点击自己头像下箭头,找到settings(设置)
在左边栏目里面选择SSH keys,然后点击Add SSH key
随便填一个Title,把上面把cat出来的内容全部添加到key文本框里,然后点击add key。
添加成功后,创建github时用到的邮箱会收到GitHub发的一个”A new public key was add to your account”的邮件。(可能会比较慢)
5、使用私人密钥与GitHub进行认证和通信
1 | ssh -T git@github.com |
b. 将hexo和github进行关联
1、编辑E:\hexo下的_config.yml文件,在_config.yml最下方,添加如下配置
1 | deploy: |
说明:
-
hexo的配置文件中任何引号’:’后面都是带一个空格的
-
repository: 后面的地址其实在github上有生成。新建仓库时候,会有生成如下图
-
这里发现还有HTTPS,其实HTTPS也可以和本地进行通信,只不过通信时候,每次要求输入GitHub账号密码
2、将本地文件同步到GitHub
1 | hexo g -d |
此时,我们的博客已经搭建起来,并发布到Github上了,这时可以登陆自己的Github查看代码是否已经推送到对应Repository,在浏览器访问http://xiangxiang-cpu.github.io
就能看到自己的博客了。配置域名后,上面链接会失效???
第一次访问地址,可能访问不了,您可以在几分钟后进行访问,一般不超过10分钟。
5. 发表一篇文章
1、在Git Bash执行命令:
1 | $ hexo new “firstblog” |
2、这时候会在hexo\source_post文件夹中,生成一个firstblog.md文件,这时候,我们可以在里面编辑内容。
3、可以先在本地预览一下生成的博客
1 | hexo g |
4、访问http://127.0.0.1:4000
5、同步到GitHub上
1 | hexo g -d |
6、访问自己的网址即可查看,https://xiangxiang-cpu.github.io
6. 配置域名
1、在hexo/source文件夹中新建一个CNAME文件,注意不是txt!
然后里面添加自己的网站域名(theworld.ltd)
2、到自己的域名解析中添加CNAME值,主机记录www,解析到username.github.io
- A记录,指向IP
- CNAME记录, 当需要将域名指向另一个域名,再由另一个域名提供 IP 地址
- @主机记录,不用输一级域名(www)也能访问
- www主机记录,需要输www才能访问
3、hexo g -d
4、等个10min就能用域名访问辣~
7. 安装插件
1 | npm install http://.... --save |
加save
8. 使用
本地更新完博客后
在hexo根目录下(不是_posts文件夹下)打开git bash
1 | hexo g -d |
就推送到服务器啦
9. bug
TypeError [ERR_INVALID_ARG_TYPE]: The “mode” argument must be of type number.
原因:node 版本太高了
https://www.jb51.net/article/202124.htm
出现404
old. 安装node.js
不用这种方法,容易安装到太高版本的node
-
下载node.js的网址https://nodejs.org/en/download/
我选择 Windows Installer (.msi) ,不太喜欢用zip的= =
-
Node.js主要用于安装hexo,npm开头的命令都依赖于Node.js
-
如果出现以下提示,则代表你的Node.js没有安装或者还未生效,如果已经安装了则重启电脑
bash: nmp: command not found
-
查看node版本的命令:在cmd或者git bash
1
node -v
介绍npm
https://www.runoob.com/nodejs/nodejs-npm.html
NPM是随同NodeJS一起安装的包管理工具
使用淘宝 NPM 镜像
大家都知道国内直接使用npm的官方镜像是非常慢的,这里推荐使用淘宝NPM镜像。
淘宝NPM镜像是一个完整npmjs.org镜像,你可以用此代替官方版本(只读),同步频率目前为 10分钟 一次以保证尽量与官方服务同步。
你可以使用淘宝定制的 cnpm (gzip 压缩支持) 命令行工具代替默认的 npm:
1 | npm install -g cnpm --registry=https://registry.npm.taobao.org |
这样就可以使用 cnpm 命令来安装模块了:
1 | cnpm install [name] |
查看npm版本
1 | npm -v |
更新npm
1 | npm install npm -g |
安装包
1 | npm install <Module Name> |
包就放在了工程目录下的 node_modules 目录中,因此在代码中只需要通过 require(‘xx’) 的方式就好,无需指定第三方包路径。
全局安装与本地安装
npm 的包安装分为本地安装(local)、全局安装(global)两种,从敲的命令行来看,差别只是有没有-g而已,比如
1 | npm install express # 本地安装 |
本地安装
- 将安装包放在 ./node_modules 下(运行 npm 命令时所在的目录),如果没有 node_modules 目录,会在当前执行 npm 命令的目录下生成 node_modules 目录。
- 可以通过 require() 来引入本地安装的包。
全局安装
- 将安装包放在 /usr/local 下或者你 node 的安装目录。
- 可以直接在命令行里使用。
查看安装信息
你可以使用以下命令来查看所有全局安装的模块:
1 | $ npm list -g |
如果要查看某个模块的版本号,可以使用命令如下:
1 | $ npm list grunt |
Package.json 属性说明
- name - 包名。
- version - 包的版本号。
- description - 包的描述。
- homepage - 包的官网 url 。
- author - 包的作者姓名。
- contributors - 包的其他贡献者姓名。
- dependencies - 依赖包列表。如果依赖包没有安装,npm 会自动将依赖包安装在 node_module 目录下。
- repository - 包代码存放的地方的类型,可以是 git 或 svn,git 可在 Github 上。
- main - main 字段指定了程序的主入口文件,require(‘moduleName’) 就会加载这个文件。这个字段的默认值是模块根目录下面的 index.js。
- keywords - 关键字
卸载模块
我们可以使用以下命令来卸载 Node.js 模块。
1 | $ npm uninstall express |
卸载后,你可以到 /node_modules/ 目录下查看包是否还存在,或者使用以下命令查看:
1 | $ npm ls |
更新模块
我们可以使用以下命令更新模块:
1 | $ npm update express |
搜索模块?
使用以下来搜索模块:
1 | $ npm search express |