阅读视图

发现新文章,点击刷新页面。
🔲 ⭐

hexo 无法在本地实时预览

自从更换了 icarus 主题以后,之前一直在使用的 hexo s --debug 以及 hexo s 都没有办法在本地实时对页面进行更新,只能通过 hexo ghexo s 的方式重新启动服务器才能够更新。虽然这样也能看到预览,但是像我这种写一下看一眼的选手来说这可是要命的,属实是困扰了我好久。

<!-- more -->

今天摸鱼时候寻思不如赶紧解决掉,查了一圈,虽然不知道是什么原因导致的,但解决办法找到了:

hexo g --watch

Hexo 能够监视文件变动并立即重新生成静态文件,在生成时会比对文件的 SHA1 checksum,只有变动的文件才会写入。

上面是 hexo 官方给出的命令解释,也就是说虽然 hexo s 不能够帮我们监视文件变化,那么我们就自己来监视。只需要在 hexo s 之前启动一个 hexo g --watch 就能解决这个问题了。

<a class="tag is-dark is-medium" href="https://www.pixiv.net/artworks/94130143" target="_blank"> <span class="icon"><i class="fas fa-camera"></i></span>   Cover by あんよ@お仕事募集中 </a>

🔲 ⭐

解决 nvm 无法在 arm 架构下安装 V15 以下的 node 版本 的问题

迫于需要维护公司一个比较老的项目,所以在配置 macOS 环境的时候选择了使用 nvm 来管理多个 node,但是遇到了一些问题。 <!-- more --> 根据 nvm 官方文档的说法:

January 2021: there are no pre-compiled NodeJS binaries for versions prior to 15.x for Apple's new M1 chip (arm64 architecture).

也就是说 M1 芯片( arm64 )现在并没有对应的预编译版本,所以安装之后需要进行编译。而在编译过程中会遇到一些问题:

  • 编译成功,但是因为内存不足而崩溃( crashes ),增加足够的 node 内存后再次尝试但依然提示内存不足;
  • 直接编译失败。

这里我遇到的是第二种情况,也就是直接编译失败。那么如何解决这个问题呢, nvm 其实在文档里给出了一个方案,这个方案有两个前提:

  • 使用 zsh
  • 已经安装好 Rosetta 2 macOS 应该在 macOS X 上的默认终端就已经是 zsh 了,而 Rosetta 2 如果在你第一次打开因特尔架构的软件时就已经安装过了,如果没有安装过也可以手动进行安装:
softwareupdate --install-rosetta

以上两个条件都满足之后我们就可以处理这个问题了。

  1. 首先检查自己的 node 架构,返回的结果应该是 arm64,这个是 M1 芯片的架构,也就是我们问题的元凶
node -p process.arch

# arm64
  1. 在 64 位 x86 架构下启动一个新的 zsh 进程;
arch -x86_64 zsh
  1. 下载你需要的 node 版本,这个 node 将会是 x86 架构的;
nvm install node
  1. 现在检查一下架构是否正确;
node -p process.arch

# x64
  1. 退出这个进程。
exit

到这里我们就成功的安装好了一个低版本的 node。

❌