(node:18692) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 2): TypeError: Object.entries is not a function 的解决方法

在 Vue.JS 项目中执行 npm run build 没想到出现了这个错误

(node:18692) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 2): TypeError: Object.entries is not a function

既没告诉我哪一行的错误,也找不到相关有用信息。而通过npm run dev 却可以正常编译。

谷歌搜索后发现可以通过升级 Node.JS 从 6 到 12 来解决。

通过 node -v 一看果然我服务器上的就是 node 6 的版本,因此通过以下操作:

为 CentOS 系统上的包管理工具 yum 添加 NodeSource 的仓库

curl -sL https://rpm.nodesource.com/setup_12.x | bash -

接下来,我们删除旧版本的 Node

sudo yum remove -y nodejs npm

然后安装新版本的 Node

sudo yum install nodejs

安装太慢了?

如果服务器在国内,安装速度有可能很慢。雪上加霜的是,最近中国的 nodesource 源都不可用了,如 清华 tuna 镜像:

没关系,这里提供一个方法:比如本地下载比较快,可以先把此时日志中的 rpm 地址(如 https://rpm.nodesource.com/pub_12.x/el/7/x86_64/nodejs-12.20.2-1nodesource.x86_64.rpm)拷贝下来放在地址栏打开,然后就会下载到本地。接着把这个 rpm 文件(下面用xx.rpm 代指)传到服务器:

sftp root@x.x.x.x
> put /xx/xxx/xx.rpm

然后在服务器上 xx.rpm 所在地址执行:

rpm -vih xx.rpm

即可。

检查新版本

node -v
npm -v
posted @ 2021-02-15 20:41  水郁  阅读(1401)  评论(0编辑  收藏  举报
……