关于安装nodejs指定版本

前言

最近升级了nodejs版本为最新的v21.7.3版本后, Hexo博客在使用hexo d指令时突然报错, 如下:

1
TypeError [ERR_INVALID_ARG_TYPE]: The "mode" argument must be of type number. Received an instance of Object

为了减少折腾 于是乎我将版本回退到v12.17.0后问题解决

方法很简单 如下

版本回退

  1. 安装nvm

    1
    sudo npm install n
  2. 安装指定版本的nodejs

    1
    sudo n install 12.17.0

关于marked模块报错的问题

报错如下:

1
2
node_modules/marked/lib/marked.cjs:870
cap[0] = this.rules.inline._backpedal.exec(cap[0])?.[0] ?? '';

这主要是高版本的markednodejs版本不兼容的问题 导致语法无法识别 这是nodejs值得吐槽的一点 语法一直在更新 居然不能向前兼容 妥妥的坑开发者😒

解决方案有两个:

  1. 要么更新nodejs版本

    1
    nvm install latest
  2. 要么降低marked版本, 比如2.0.0

    1
    npm install marked@2.0.0

高版本和低版本的引用方式也不同 不然会提示TypeError: marked is not a function:

1
2
3
4
//高版本
const {marked} = require('marked')
//低版本
const marked = require('marked')

本文为作者原创 转载时请注明出处 谢谢

乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站

0%