一、推薦使用 nvm 工具,直接通過命令行安轉和切換各個版本
無論是 Windows 平臺,還是 Linux 平臺,都推薦使用 nvm 工具。
nvm(Node.js Version Management),是一個 nodejs 的版本管理工具。它是專門為解決 node.js 各種版本存在不兼容的問題。可以通過它安裝和切換不同版本的 node.js,還可同時在一個環境中安裝多個 node.js 版本(和配套的 npm),這樣在日常開發中就方便多了。
但需要注意的是,在安裝 nvm 前,需要將原先已安裝的 nodejs 全部刪除干凈。
詳情可參考:https://blog.csdn.net/hefeng_aspnet/article/details/150005772
如果您喜歡此文章,請收藏、點贊、評論,謝謝,祝您快樂每一天。
二、 手動更新
當然,除了通過工具來更新,也可以手動安裝,下面推薦個下載 nodejs 的阿里云地址,其中包含歷史的各個版本。
安裝包下載地址:https://mirrors.aliyun.com/nodejs-release/
單擊對應的版本,進入詳情,會有各個平臺的安裝文件。
Windows 平臺
可以直接下載系統對應的 .msi 后綴的安裝程序。現今 32 位的系統已經不多了,一般可以下載 x64 版本。
下載好后直接雙擊安裝即可。
nodejs 詳細的安裝步驟可以參考:https://blog.csdn.net/hefeng_aspnet/article/details/150009262
npm 是 Node.js 的包管理器,用于發布和管理 Node.js 應用程序的依賴關系。
通常情況下,在安裝 Node.js 時,npm 會自動包含在內,無需單獨下載和配置。
若要更新指定版本的 npm,可以參考以下命令:
npm install -g npm
npm install -g npm@<指定版本號>
npm install -g npm@6.14.18
Linux 平臺
安裝步驟可以參考:https://blog.csdn.net/hefeng_aspnet/article/details/150009452
要注意的是,CentOS 7 最多支持到 Node.js-16.x 版本。在 CentOS 7 上安裝更高版本的 Node.js,如 Node.js-18.x,可能會導致系統出現兼容性問題和報錯。這是因為隨著 Node.js 版本的更新,其依賴的庫和模塊可能也會發生變化,這可能與 CentOS 7 上的舊版軟件包產生沖突。為了確保 Node.js 能夠正常運行并避免潛在的錯誤,建議在 CentOS 7 上安裝官方推薦的 Node.js 16.x 版本。這一版本已經經過了充分的測試和驗證,與 CentOS 7 的兼容性較好,能夠提供穩定的運行環境。
三、遇到的幾個錯誤提示
3.1 Node Sass could not find a binding for your current environment...
報錯內容:
// 執行命令 npm run dev 時報錯:
Node Sass could not find a binding for your current environment: Windows 64-bit with Node.js 14.x
// 執行 npm 命令報錯:
Failed to resolve loader: sass-loader You may need to install it. Error from chokidar (E:\): Error: EBUSY: resource busy or locked
報錯原因是,項目中可能是區分測試和正式服務配置的。
可以嘗試通過如下命令修復:
// 默認是在正式服中操作
// 先卸載,再安裝
npm uninstall sass-loader node-sass
npm install sass-loader node-sass
// 若需要再測試環境更新,則需要加上一個配置:--save-dev
npm uninstall sass-loader node-sass --save-dev
npm install sass-loader node-sass --save-dev
// 安裝指定版本
npm uninstall node-sass
npm install node-sass@4.14.1
npm install node-sass@latest
3.2 errno: -4071, ?code: 'EINVAL', ?syscall: 'spawnSync npm.cmd', ?path: 'npm.cmd' ...
報錯詳情:
【初始化報錯】
errno: -4071, ?code: 'EINVAL', ?syscall: 'spawnSync npm.cmd', ?path: 'npm.cmd',
arco design 初始化項目時報錯:× 模板內容拷貝失敗 Error: spawnSync npm.cmd EINVAL
原因是 child_process.spawn 有漏洞 (CVE-2024-27980)-(HIGH),調用要加{ shell: true }。2024.4.10 node 修復了這個漏洞,代碼執行就報錯了。cli 下載 arco-design-pro-vue 執行到 .arco-cli\init.js 就出現 spawn 報錯。
解決辦法:使用 18.20.2、20.12.2、21.17.3 之前的版本就可以了。我用 18.20.0 版本就可以了。
解決方案參考:https://github.com/arco-design/arco-cli/issues/92
3.3 淘寶鏡像地址證書過期
報錯詳情:
request to https://registry.npm.taobao.org/axios failed, reason: certificate has expired
解決方案:
先備份 npm 配置,可以防止在更換過程中出現意外導致配置丟失
npm config get > npm_config.txt
npm config set registry https://registry.npmmirror.com
npm install --save-dev @arco-design/web-vue
npm i -g arco-cli
3.4 Error: Command 「yarn 」 executed failed
報錯詳情:
× 項目依賴安失敗,你可以稍后嘗試手動安裝項目依賴
Error: Command 「yarn 」 executed failed:
warning ..\package.json: No license field
warning gifsicle > bin-build > tempfile > uuid@3.4.0: Please upgrade ?to version 7 or higher.
。。。
解決方案:
打開命令行,切換到項目目錄,例如:cd your_project_directory
運行以下命令來清除之前的依賴緩存:yarn cache clean
更新項目的依賴包:yarn upgrade
重新安裝項目依賴:yarn install
3.5 npm 命令執行時報錯:Error: Cannot find module 'node:path'
可能得原因是,nodejs 和 npm 版本不匹配,按照本文第一章節中的版本對應關系,升級 nodejs 即可。
如果您喜歡此文章,請收藏、點贊、評論,謝謝,祝您快樂每一天。