前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Hexo升级之后Butterfly主题不兼容,发生报错:TypeError: require(...) is not a function

Hexo升级之后Butterfly主题不兼容,发生报错:TypeError: require(...) is not a function

原创
作者头像
芝士就是菜
发布2024-02-16 16:33:37
1710
发布2024-02-16 16:33:37
举报
文章被收录于专栏:芝士就是菜芝士就是菜

因为闲来无事,看着hexo的butterfly主题已经到了4.12版本,打算升级一下,主题版本,于是打开官网,查看升级方法,非常简单,一条命令即可

升级方法:在 Hexo 根目录下,运行 npm update hexo-theme-butterfly

但是新版本的butterfly主题需要较新的hexo 版本,所以首先进行了hexo的升级,hexo升级也挺麻烦,升级完成之后运行npm的升级命令,结果并为进行升级,而且,运行 hexo clean等相关命令发生以下报错:

代码语言:js
复制
❯ hexo clean
INFO  Validating config
ERROR Script load failed: themes\butterfly\scripts\events\init.js
TypeError: require(...) is not a function
    at D:\Blog\themes\butterfly\scripts\events\init.js:1:106
    at D:\Blog\node_modules\hexo\dist\hexo\index.js:248:20
    at tryCatcher (D:\Blog\node_modules\bluebird\js\release\util.js:16:23)
    at Promise._settlePromiseFromHandler (D:\Blog\node_modules\bluebird\js\release\promise.js:547:31)
    at Promise._settlePromise (D:\Blog\node_modules\bluebird\js\release\promise.js:604:18)
    at Promise._settlePromise0 (D:\Blog\node_modules\bluebird\js\release\promise.js:649:10)
    at Promise._settlePromises (D:\Blog\node_modules\bluebird\js\release\promise.js:729:18)
    at _drainQueueStep (D:\Blog\node_modules\bluebird\js\release\async.js:93:12)
    at _drainQueue (D:\Blog\node_modules\bluebird\js\release\async.js:86:9)
    at Async._drainQueues (D:\Blog\node_modules\bluebird\js\release\async.js:102:5)
    at Async.drainQueues (D:\Blog\node_modules\bluebird\js\release\async.js:15:14)
    at process.processImmediate (node:internal/timers:471:21)
ERROR Script load failed: themes\butterfly\scripts\events\welcome.js
TypeError: require(...) is not a function
    at D:\Blog\themes\butterfly\scripts\events\welcome.js:1:106
    at D:\Blog\node_modules\hexo\dist\hexo\index.js:248:20
    at tryCatcher (D:\Blog\node_modules\bluebird\js\release\util.js:16:23)
    at Promise._settlePromiseFromHandler (D:\Blog\node_modules\bluebird\js\release\promise.js:547:31)
    at Promise._settlePromise (D:\Blog\node_modules\bluebird\js\release\promise.js:604:18)
    at Promise._settlePromise0 (D:\Blog\node_modules\bluebird\js\release\promise.js:649:10)
    at Promise._settlePromises (D:\Blog\node_modules\bluebird\js\release\promise.js:729:18)
    at _drainQueueStep (D:\Blog\node_modules\bluebird\js\release\async.js:93:12)
    at _drainQueue (D:\Blog\node_modules\bluebird\js\release\async.js:86:9)
    at Async._drainQueues (D:\Blog\node_modules\bluebird\js\release\async.js:102:5)
    at Async.drainQueues (D:\Blog\node_modules\bluebird\js\release\async.js:15:14)
    at process.processImmediate (node:internal/timers:471:21)
    

报错原因主要是以下内容,看描述好像是出现了语法问题,实际是因为高版本的hexo和低版本的butterfly有冲突

代码语言:js
复制
themes\butterfly\scripts\events\init.js
TypeError: require(...) is not a function

这个时候因为 npm的升级命令不起作用,需要将themes主题下的butterfly文件夹全部删除,然后在blog的根目录直接运行下面git命令,将最新版的butterfly主题clone下来即可

代码语言:shell
复制
git clone -b master https://github.com/jerryc127/hexo-theme-butterfly.git themes/butterfly

然后运行 hexo clean 等相关命令恢复正常

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档