更新Hexo版本和Next主题

starlin 997 2018-08-24

更新Hexo

最近空的时候更新了下Hexo的版本,具体操作如下:

  1. 首先查看下本地Hexo的版本,命令如下:

npm outdated

显示如下:我们可以看到我本地的版本是3.4.2,最近的版本是3.7.1

E:\Hexo>npm outdated
Package               Current  Wanted  Latest  Location
hexo                    3.4.2   3.7.1   3.7.1  hexo-site
hexo-algolia            0.2.0   0.2.0   1.2.5  hexo-site
hexo-renderer-marked    0.3.0   0.3.2   0.3.2  hexo-site
hexo-server             0.2.2   0.2.2   0.3.2  hexo-site
  1. 按照上面的提示,更改Hexo目下的package.json文件,设置相应的版本
package.json
{
  "name": "hexo-site",
  "version": "0.0.0",
  "private": true,
  "hexo": {
    "version": "3.7.1"
  },
  "dependencies": {
    "hexo": "^3.2.0",
    "hexo-algolia": "^1.2.5",
    "hexo-deployer-git": "^0.3.1",
    "hexo-generator-archive": "^0.1.4",
    "hexo-generator-category": "^0.1.3",
    "hexo-generator-feed": "^1.2.2",
    "hexo-generator-index": "^0.2.0",
    "hexo-generator-tag": "^0.2.0",
    "hexo-renderer-ejs": "^0.3.0",
    "hexo-renderer-marked": "^0.3.2",
    "hexo-renderer-stylus": "^0.3.1",
    "hexo-server": "^0.3.2",
    "hexo-wordcount": "^3.0.2"
  }
}
  1. 执行更新操作,命令如下:

npm update

  1. 查看更新后的版本,发现已经升级到3.7.1版本了,更新成功

hexo version

hexo: 3.7.1
hexo-cli: 1.0.4
os: Windows_NT 10.0.17134 win32 x64
http_parser: 2.7.0
node: 8.9.0
v8: 6.1.534.46
uv: 1.15.0
zlib: 1.2.11
ares: 1.10.1-DEV
modules: 57
nghttp2: 1.25.0
openssl: 1.0.2l
icu: 59.1
unicode: 9.0
cldr: 31.0.1
tz: 2017b

更新Next主题

最新的Next主题是6.x,它与Next5.x的其实没有太大的区别,我按照官方的操作步骤升级,如下:

  1. 并不修改原有的 next 目录,而只是复制部分 NexT 文件:
  • config.yml 或 next.yml(如果你使用了数据文件)。
  • 自定义的 CSS 配置,它们应在 next/source/css/_custom/* 和 next/source/css/_variables/* 中。
  • 自定义的排布配置,它们应在 next/layout/_custom/* 中。
  • 任何其它可能的附加自定义内容;为了定位它们,你可以通过某些工具在仓库间比较
  1. 克隆新的 v6.x 仓库到任一异于 next 的目录(如 next-reloaded):

$ git clone https://github.com/theme-next/hexo-theme-next themes/next-reloaded

如此,你可以在不修改原有的 NexT v5.1.x 目录的同时使用 next-reloaded 目录中的新版本主题。

  1. 在Hexo主题配置文件中设置新的主题为next-reloaded
theme: next-reloaded
  1. 更新语言配置
    升级到v6.0.3及以后版本的用户,需要显式修改_config.xml里的language配置,否则语言显示不正确。

# Hexo