Nuxt: Invalid package config node_modules/ufo/package.json while importing “ufo“

一、问题描述

环境:

Node: 18.14.0
Nuxt: 3.0.0-rc.1
Yarn: 1.22.22

最近使用云效正常构建发布项目,但偶尔会出现项目无法访问,此时日志会出现以下异常:

ERROR	Error [ERR_INVALID_PACKAGE_CONFIG]: Invalid package config /var/task/node_modules/ufo/package.json while importing "ufo" from /var/task/index.mjs. Unexpected token } in JSON at position 976
    at new NodeError (internal/errors.js:322:7)
    at getPackageConfig (internal/modules/esm/resolve.js:145:11)
    at packageResolve (internal/modules/esm/resolve.js:719:27)
    at moduleResolve (internal/modules/esm/resolve.js:773:18)
    at Loader.defaultResolve [as _resolve] (internal/modules/esm/resolve.js:887:11)
    at Loader.resolve (internal/modules/esm/loader.js:89:40)
    at Loader.getModuleJob (internal/modules/esm/loader.js:242:28)
    at ModuleWrap.<anonymous> (internal/modules/esm/module_job.js:76:40)
    at link (internal/modules/esm/module_job.js:75:36) {
  code: 'ERR_INVALID_PACKAGE_CONFIG'

最新更新

2024.07.02:今日再次出现该问题,所以本文所提解决方案无法解决该问题!!!

二、问题排查及解决

按照报错提示,下载构建产物,找到对应依赖ufo的package.json进行检查:

在这里插入图片描述
确认该package.json中间少了部分内容,而该包在github上格式是完整无误的。

而本地多次测试,未出现该问题。因此,怀疑云效构建环境上可能存在问题。

于是在ufo github的issue上找到一篇《Cannot find package '/usr/src/app/.output/server/node_modules/ufo》,里面也有提到Invalid package config node_modules/ufo/package.json while importing "ufo"的问题,而且可能和Docker环境有关。

另外提到ufo相关的,还有在Stack Overflow上的一个问题:《nuxt cannot find module nuxt ufo from app cilent no changes were made》,里面也提到了Docker引发的问题。

最后,云效 Flow 提供的默认构建集群应该使用的容器是 Docker,那么有可能也会存在该问题。可以采用下面的方式来尝试解决问题(目前待验证):

删除/node_modules文件夹,然后重新安装模块:

yarn install @nuxt/ufo

或(旧的@nuxt/ufo包):

yarn install ufo@0.8.4
  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

晓风伴月

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值