Hexo遇到的问题
1.安装hexo
npm install hexo-cli -g
2.linux问题
在deepin系统上使用hexo d部署自己的博客到github,输入github的用户名密码之后,会有很长的时间命令行没有反应,等了很长时间,十分钟,在VS Code 的终端窗口会出现问题。
3.Last few GCs
运行hexo s的时候,出现了Last few GCS内存溢出的问题:Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory。
解决方法:
因为我安装了nvm,安装到了D盘,并且使用了nodejs的14.15.1的版本,所以找到D:\soft\nvm\v14.15.1\hexo,打开,进行添加如下的语句
1 | if [ -x "$basedir/node" ]; then |
当然这也可能不管事。
后来这个问题,就是我在主题文件下,添加了一个extend的文件夹,里面写了一些脚本,所以在运行的时候就出现了同时运行这些脚本的情况。当我把这个文件拷出来之后,内存泄露的问题就不存在了。然后我把该文件再次移动到里面,又出现了内存泄露的问题,而且运行hexo s时也会实时监控主题文件夹中的所有文件,包括其中的node_modules文件,进行实时处理,所以就会造成了处理的文件过多,出现了内存泄露问题。
1.hexo g的时候内存溢出.我应该如何监控跟定位这个问题? (这个就是上面的问题)
2.Hexo Process Out of Memory 内存溢出问题 (这个是编辑了hexo的第一行:#!/usr/bin/env node –max_old_space_size=8192)
3.OutOfMemory with 3000 docs (这是文章超过三千的时候,会出现内存问题。)
4.Solve “Out of memory” during generation by limiting the number of concurrent tasks #3665 (这片文章没啥用)
跳过某些文件夹
既然知道了hexo会搜描并渲染theme某个主题下的全部的文件夹及文件,然后知道需要的内容,那么要想让我编写的某一个文件夹不被渲染,就要添加例外(本意我新建这个文件夹并在其中初始化npm库的原因就是我修改了一个压缩图片的库,想着如果有一天能和主题一起发布的话,那么其中的内容就和主题一样了)。
当然使用skip_render好像不能满足需求,于是就可以使用ignore进行忽略,在主题的_config.yml配置文件中添加如下的内容:
1 | ignore: |
1.Hexo 跳过指定文件的渲染 (讲了如何跳过source下的某些文件以及文件夹)
2.Hexo跳过指定文件的渲染 (这个也是,不过也多加了一些其他的东西)
3.如何防止hexo渲染某个文件夹
4.【源码开放】Hexo+Github+Coding 博客butterfly 和 matery 主题 搭建完全教程【整理】 (偶然间发现的一个大三学生写的blog,真的很让我佩服,可设置阅读文章时做密码验证、使用PicGo+Github搭建免费图床)
5.配置 (官方说明中关于include包含某些文件、exclude排除某些文件、ignore忽略某些文件以及skip_render跳过某些文件渲染的区别)
4.部署到gitee之后仓库会逐渐变得膨胀
使用hexo d进行网站部署之后,部署几次之后,github没有问题,就是gitee就回出现:Push rejected for repository size exceeds limit,说是仓库超出了1024M大小的限制,但是实际上整个public文件夹,以及.deploy_git文件夹也没有这么大的,我怀疑就是每次都是重新部署,不是覆盖而是增加。
1.GitHub,Gitee,Coding,静态博客「Pages」服务横评
2.bitbucket/gitee 都限制仓库大小了, 没有自建git仓库的朋友们,我来推荐一个腾讯云旗下的代码托管平台 (推荐的是coding,我觉得评论很多挺有意思的,无用的知识又增加了)
5.Hexo无法在主题文件夹中执行npm install命令
事情的起因是这样的,我想将主题文件夹下的js等进行压缩,也想自动执行git等命令,于是我选择了gulp这个工具。在next和自带的landscape主题中都有gulpfile的身影,所以我进入到next主题文件夹,然后执行npm install命令,因为这个文件夹里面有package.json文件,所以主题文件夹中很快生成了node_modules文件夹,这是正常的。但是当我回到hexo的根目录,执行hexo s命令打算启动hexo的时候,竟然报错了,而且启动不起来。
或者是这个错误:
估计是在hexo s执行时,全盘扫描了theme/next主题文件夹中所有文件,然后进行处理,所以对于庞大的node_modules,就显得力不从心了。这个问题我没找到合适的解释和解决方案,不明白别人的的主题都是怎么开发的,或者说是主题中的gulp命令是怎么执行的,进一步说是,为什么主题文件夹中还有个package.json文件。
现在原始的解决方式,就是将主题文件夹中的package.json中的包,手动安装到hexo的根目录下,然后在根目录下通过指定gulpfile文件的位置(或者干脆也把gulpfile放到根目录下,theme中的gulpfile就当是单独发布的主题的时候使用吧),来执行gulp命令,而对于主题文件夹下的package.json文件,就作为一个说明,在后来的单独发布主题时备用吧。
6.Hexo无法显示图片
刚开始运行hexo的时候,在网站配置文件中开启post_asset_folder: true,使用 标签语法,是可以在文章中生成图片的,图片可以正常的链接。但是后来删除了网站的node_modules文件夹,然后重新npm install之后,问题就来了(当然问题可能不出在这里),使用asset_img再也引用不到图片了,图片的路径中,莫名奇妙的多了一个.io前缀,这个前缀可能是因为使用了github.io,问题出自哪里,网上没有相应的说明。
配置文件如下图,没毛病:
我尝试着将hexo-asset-image降级到0.0.3,最后甚至npm删除了这个插件,(发现有没有它都没问题,hexo核心中已经加入了相应的代码)。官网是这么说的“在Hexo 2时代,社区创建了很多插件来解决这个问题。但是,随着Hexo 3 的发布,许多新的标签插件被加入到了核心代码中。这使得你可以更简单地在文章中引用你的资源”。经过一段时间的摸索和谷歌,始终找不到问题答案,基本上都是说可以使用asset_img语法显示图片。
后来我新建的文章中,使用同样的语法,再次hexo s却可以显示图片,这真是令人无法理解。于是我结束hexo s,然后执行hexo clean,最后再次hexo s,图片又回来了,简直蛋疼有没有。
浪费了很多时间,最后仅仅只是删除了hexo-asset-img插件,中间还执行了一次npm audit fix,更新了包,最后竟是稀里糊涂的出现问题,稀里糊涂的解决了问题,不知该庆祝还是该哭泣。。。。