Hexo and NexT upgrade

Hexo 5.0.0+

从Hexo 4升级到Hexo +,直接改package.json里面的依赖版本:

1
"hexo": "^5.0.0",

然后命令行

1
npm install

然后看情况,需要npm audit fix或者单独安装所需要的依赖。

建议在升级NexT之前先把Hexo升级了再测试,避免新的node module依赖又出问题。

Hexo 5更新日志:https://hexo.io/news/2020/07/29/hexo-5-released/

包括两个方便的新特性:1. 通过npm安装主题;2. 通过_config.[name].yml来配置主题。这样的好处是不用每次升级主题就要手动再配置一次。

NexT 8.0+

从NexT 7升级到8,可以采用Hexo 5新引入的npm来安装,也可以像以前一样用git clone来安装。两者都可以实现很好的更新。

NexT再次易主了,具体请看https://github.com/next-theme/hexo-theme-next/issues/4

  1. 简单来说,问题就是 theme-next 团队的 owner 始终拒绝向其它任何团队成员提供足够的权限,且 owner 本人自去年 10 月起已连续半年不在线,导致其它活跃的团队成员无法管理仓库,也无法邀请新的成员。
    由于对 theme-next 团队的未来不抱有期望,我作为 theme-next 的主要贡献者,自 4 月起停止为旧的仓库贡献代码,并创建了新的组织,以确保维护工作正常进行。

  2. 只要能够收到足够多的 Bugfix / Feature Request,每月更新肯定不是问题。

  3. 目前已经发布的版本在这里: https://github.com/next-theme/hexo-theme-next/releases
    v8.0.0 版本计划在 Hexo 5.0 版本后发布。

    (历史总是惊人地相似: iissnan/hexo-theme-next#2061 (comment)

(感叹一句真不容易)

我安装完在CDN那里一直报错,是vendor.js代码里面解析localcall一直出问题:

1
2
3
4
5
6
7
8
9
10
11
12
INFO  Start processing
FATAL {
err: TypeError: Cannot read property 'call' of undefined
at module.exports (/Users/chaolinhan/Public/Hexo/init/themes/next/scripts/events/lib/vendors.js:27:25)
at Hexo.<anonymous> (/Users/chaolinhan/Public/Hexo/init/themes/next/scripts/events/index.js:9:27)
at Hexo.tryCatcher (/Users/chaolinhan/Public/Hexo/init/node_modules/hexo/node_modules/bluebird/js/release/util.js:16:23)

.
.
.

} Something's wrong. Maybe you can find the solution here: %s https://hexo.io/docs/troubleshooting.html

可能是历史遗留的lib文件问题,因为测试了应该不是依赖的问题。解决方法简单粗暴,直接把vendor.js出问题的这个call(第二行)注释掉就行了,等以后有空了慢慢看看是什么问题 lol

1
2
3
4
5
6
7
8
const links = {
// local: url_for.call(hexo, `lib/${name}/${file}`),
jsdelivr: `//cdn.jsdelivr.net/npm/${name}@${version}/${file}`,
unpkg: `//unpkg.com/${name}@${version}/${file}`,
cdnjs: `//cdnjs.cloudflare.com/ajax/libs/${
alias || name
}/${version}/${file.replace(/^(dist|lib|)\/(browser\/|)/, "")}`,
};

别的问题大部分都是依赖的问题,用npm audix好好查一下然后把报错的挨着修复下就行了。

别的新特性慢慢试试,暂时就从以前的配置迁移过来先。

更新

2020.10.8

重新hexo init和安装了next主题,然后把所有博客和配置文件复制到重装的hexo里面,解决了之前vendor.jscall的问题。