我是这样用Nodejs的hexo的
我是这样用Nodejs的hexo的
在本地和服务器上都装一下,然后服务器上放一个repo,本地只用git管理src下的内容,忽略掉template(另外clone)config.yml以及build中的内容。 每次更新,push到服务器上之后触发githook,在服务器端进行生成。 然后遇到了一个问题就是输出进度的代码有一行写的是 stdout.clearLine() (现在好像改成term.clearLine)了,这样因为提交代码的时候stdout指向的是一个socket连接,没有clearLine方法,就抛错了,自己简单fix了一下。 后来发现hexo是只是rsync的,但是我在考虑的就是本地生成的话就要把config写成localhost才能检查各链接是否正常,但是服务器上的配置写localhost肯定是不行的,不知道官方推荐的做法是什么样的。
我是这样用Node.js的Hexo的
简介
Hexo 是一个快速、简洁且高效的博客框架。本文将分享我如何在本地和服务器上使用 Hexo,并介绍一些遇到的问题及解决方案。
部署流程
-
环境搭建
- 在本地和服务器上安装 Node.js 和 Hexo。
# 安装 Node.js sudo apt-get update sudo apt-get install nodejs # 安装 Hexo npm install -g hexo-cli
- 在本地和服务器上安装 Node.js 和 Hexo。
-
项目结构
- 在本地创建一个 Hexo 项目,并通过 Git 管理
src
目录的内容。 - 忽略
template
文件夹(可以从其他地方单独克隆),并忽略config.yml
及build
目录。# 创建 Hexo 项目 hexo init myblog cd myblog # 初始化 Git 仓库 git init git add . git commit -m "Initial commit"
- 在本地创建一个 Hexo 项目,并通过 Git 管理
-
Git Hook 配置
- 在服务器上设置一个 Git 仓库,并配置 Git Hook,在每次推送时触发生成操作。
# 服务器上创建 Git 仓库 mkdir /path/to/repo cd /path/to/repo git init --bare # 本地添加远程仓库 git remote add origin user@server:/path/to/repo.git # 配置 Git Hook echo 'cd /path/to/repo && hexo generate' > hooks/post-receive chmod +x hooks/post-receive
- 在服务器上设置一个 Git 仓库,并配置 Git Hook,在每次推送时触发生成操作。
-
解决stdout.clearLine问题
stdout.clearLine()
方法在某些情况下会报错,可以使用term.clearLine()
替代。// 示例代码 const term = require('terminal-kit').terminal; // 原来的代码 // stdout.clearLine(); // 修改后的代码 term.clearLine();
-
多环境配置
-
在不同环境中使用不同的配置文件(如
config.local.yml
和config.server.yml
)来管理不同的配置项。# config.local.yml url: http://localhost:4000
# config.server.yml url: http://yourdomain.com
-
在部署时根据环境选择相应的配置文件:
# 本地生成 hexo config --file config.local.yml hexo generate # 服务器生成 hexo config --file config.server.yml hexo generate
-
总结
通过上述步骤,可以在本地和服务器上高效地使用 Hexo 进行博客的管理和发布。希望这些经验对你有所帮助!
在服务器端生成啥意思? 不是应该在本地生成html的么?
如何使用 Node.js 和 Hexo
Hexo 是一个快速、简单的静态站点生成器。它可以帮助你在本地开发并生成静态网站,然后部署到服务器上。以下是如何使用 Node.js 和 Hexo 的一些基本步骤。
安装和配置
-
安装 Node.js: 确保你已经在本地机器和服务器上安装了 Node.js。可以通过以下命令来安装:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash nvm install node
-
安装 Hexo: 在本地机器上全局安装 Hexo:
npm install -g hexo-cli
-
初始化项目: 在你的项目目录中初始化一个新的 Hexo 项目:
hexo init my-blog cd my-blog npm install
-
忽略不需要的文件: 在
.gitignore
文件中添加忽略项:# 忽略模板文件 template/ # 忽略配置文件 config.yml # 忽略构建结果 public/
-
配置 Git 钩子: 在服务器上创建一个 Git 仓库,并设置
post-receive
钩子:mkdir /path/to/repo cd /path/to/repo git init --bare echo "cd /path/to/repo && hexo generate" > hooks/post-receive chmod +x hooks/post-receive
-
本地推送代码: 在本地将代码推送到服务器:
git remote add origin user@server:/path/to/repo.git git push origin master
生成和部署
在服务器上,每次推送都会触发 post-receive
钩子,自动执行 hexo generate
命令生成静态文件。
# 服务器上的钩子脚本
#!/bin/bash
cd /path/to/repo
hexo clean
hexo generate
处理 stdout 问题
关于 stdout.clearLine()
方法的错误,你可以通过检查当前环境来避免这个问题。例如:
if (typeof process.stdout.clearLine === 'function') {
process.stdout.clearLine();
}
或者使用其他库如 terminal-kit
来处理终端操作:
npm install terminal-kit
const term = require('terminal-kit').terminal;
term.clearLine();
配置文件
对于不同环境的配置文件,你可以使用 hexo-config-multiple-env
插件来管理不同的配置环境。
npm install hexo-config-multiple-env --save
在 config.yml
中配置不同环境:
multiple_env:
default: development
environments:
production:
deploy_to: "/path/to/public"
development:
deploy_to: "/path/to/local/public"
总结
通过上述步骤,你可以更好地管理和部署基于 Hexo 的静态网站。确保你的代码和配置文件能够正确处理不同的环境,以实现无缝的开发和部署流程。