在 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