You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Nuxt 2.18项目启动npm run dev出现TypeError(invalid options argument)错误

解决Nuxt 2.18启动时mkdirp的"invalid options argument"错误

这个问题的核心是Nuxt 2.18依赖的旧版mkdirp(v1.x)与npm自动安装的新版mkdirp(v2.x+)API不兼容,导致参数传递格式错误。以下是几个可行的修复方案:

方案一:锁定mkdirp兼容版本

这是最稳妥的方法,强制项目使用和Nuxt2兼容的mkdirp@1.0.4:

  • 如果你用npm:
    1. 安装依赖锁定工具:npm install npm-force-resolutions --save-dev
    2. 在项目根目录的package.json中添加以下配置:
      "resolutions": {
        "mkdirp": "1.0.4"
      },
      "scripts": {
        "preinstall": "npx npm-force-resolutions"
      }
      
    3. 删除项目下的node_modules文件夹和package-lock.json文件
    4. 重新安装依赖:npm install
    5. 再次启动项目:npm run dev
  • 如果你用yarn:
    1. 直接在package.json中添加:
      "resolutions": {
        "mkdirp": "1.0.4"
      }
      
    2. 删除node_modules和yarn.lock
    3. 执行yarn install后启动项目

方案二:降级npm版本到v6

npm 7及以上版本的peer依赖处理逻辑和v6不同,可能导致依赖树出现不兼容的版本:

  • 全局降级npm:npm install -g npm@6
  • 删除node_modules和package-lock.json
  • 重新安装依赖:npm install
  • 启动项目:npm run dev

方案三:临时修改mkdirp代码(不推荐)

如果前两个方案都无法生效,可以临时修改报错文件,但更新依赖后会失效:

  • 打开报错的文件node_modules/mkdirp/lib/opts-arg.js
  • 找到第13行的报错代码,修改参数判断逻辑,比如将严格校验改为宽松判断:
    // 原代码
    throw new TypeError('invalid options argument')
    // 修改为(仅临时用)
    if (typeof opts !== 'object' || opts === null) throw new TypeError('invalid options argument')
    

内容的提问来源于stack exchange,提问作者mattBurnett

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 19:42:38