(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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM