你的浏览器无法正常显示内容,请更换或升级浏览器!

记一次Nuxt3从v3-rc版升级到v3正式版后报错问题。

tenfei
tenfei
发布于2023-10-17 15:42 阅读670次
记一次Nuxt3从v3-rc版升级到v3正式版后报错问题。
记一次Nuxt3从v3.0.0-rc.x版升级到v3.x正式版后,项目npm run dev模式下一切正常,只有在npm run build时报错,报错内容如下: ``` Nuxt 3.1.1 with Nitro 2.1.1 Error: Error: Cannot find module string_decoder/ imported from file:///D:/nuxt_app/node_modules, file:///D:/nuxt_app/node_modules/nuxt/node_modules, file:///D:/nuxt_app/node_modules/nitropack/node_modules, file:///D:/nuxt_app/, file:///D:/nuxt_app/node_modules/_index.js, file:///D:/nuxt_app/node_modules, file:///D:/nuxt_app/node_modules/nuxt/, file:///D:/nuxt_app/node_modules/nuxt/node_modules/_index.js, file:///D:/nuxt_app/node_modules/nuxt/node_modules, file:///D:/nuxt_app/node_modules/nitropack/, file:///D:/nuxt_app/node_modules/nitropack/node_modules/_index.js, file:///D:/nuxt_app/node_modules/nitropack/node_modules undefined ``` 分析报错结果,应该是string_decoder找不到,已确认组件是依赖组件,并确认已正常安装,经排查是 .output/server/node_modules/readable_stream/lib/_stream_readable.js 170行引入string_decoder时出错。 ``` if (options.encoding) { if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder; this.decoder = new StringDecoder(options.encoding);this.encoding = options.encoding; } ``` 尝试删除.nuxt,.output,node_modules等文件夹,重新刷新package-lock.json,清除npm缓存等一系列操作,问题仍然得不到解决,由此分析判断为组件版本冲突,逐一注释引入组件调用文件,最后找到引起该问题的组件为mysql v2.18.1,删除后一切正常,可是项目又必须要使用mysql连接组件,最终找到mysql2 v3.1.0来替代,且连接程序及mysql数据库操作语法不需要做任何修改,完美解决问题。 分享至此,以免更多的小伙伴踩坑。

2

0

文章点评
暂无任何评论
Copyright © from 2021 by namoer.com
458815@qq.com QQ:458815
蜀ICP备2022020274号-2