ReferenceError: primordials is not defined

ReferenceError: primordials is not defined

错误现象

今天在处理一个老项目的 bug 时,执行 npm install 正常,执行 npm run start 或者 npm run build 意外报错 ReferenceError: primordials is not defined

尝试重新链接网络,删除 node_modules 重新安装等方法,不生效。

尝试手动安装 primordials 这个第三方库,也不生效,这个第三方库好像有问题,npm 和 github 上找不到源码。

在这里插入图片描述

错误原因

查阅资料后,发现第三方依赖和本地 node 版本不符合。

我这个老项目中,依赖一个蚂蚁金服自己的构建工具 rc-tools 这个构建工具是基于 gulp 实现的。

因为是一个老项目 rc-tools 版本比较老,依赖的 gulp 版本同样比较老。

I hit the same error. I suspect you’re using Node.js 12 and Gulp.js 3. That combination does not work: Gulp.js 3 is broken on Node.js 12 #2324

原因:第三方项目依赖 gulp(3.9.1) 然后 gulp 和当前 node (16.8) 版本不匹配

解决方案

方案一

升级 gulp 版本。因为这个项目比较老了,临时改一个 bug,如果升级,需要更新的东西比较多,可能耽误项目进度,同时可能有各种新的问题。所以暂时不升级。

方案二

降级本地 node 版本,可以使用 n 或者 nvm 管理本地的 node 版本。我尝试把版本降低到 node 10,这样可以正常运行这个老项目。

在这里插入图片描述
改完这个 bug 还需要再切回 node 16 版本

参考链接如下

https://blog.csdn.net/tianchoy/article/details/124096178

https://blog.csdn.net/sunny_desmond/article/details/107506626

https://blog.csdn.net/xingmeiok/article/details/125625731

Stack Overflow

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值