gulp dev報(bào)錯(cuò)
gulp項(xiàng)目,當(dāng)我們使用較新的node版本下載項(xiàng)目依賴時(shí),gulp dev可能會(huì)報(bào)錯(cuò):

原因在于,gulp版本可能在V3,而node版本則在V12,版本不兼容。
解決方法:
- 版本控制:
- 將gulp版本升級(jí)到V4;
- 將node版本降級(jí)到V11;
- 將graceful-fs升級(jí)到在node v12+下工作的版本4.2.2(推薦);
- 最佳方法:
在package.json同級(jí)目錄下新建文件npm-shrinkwrap.json,并輸入以下內(nèi)容:
{
"dependencies": {
"graceful-fs": {
"version": "4.2.2"
}
}
}
文件創(chuàng)建完成后,再進(jìn)行 npm install, 依賴下載完成后,再執(zhí)行 gulp dev,此時(shí)項(xiàng)目就能正常運(yùn)行了(關(guān)于npm-shrinkwrap.json,可查閱參考資料)。
注意:
需要注意的是,這個(gè)文件在執(zhí)行npm install之后會(huì)被重寫,如果后續(xù)其他人初始化項(xiàng)目時(shí)基于的是重寫后的這個(gè)文件去install,gulp dev時(shí)還是會(huì)報(bào)錯(cuò),所以這個(gè)文件只將最開始時(shí)的文件傳到git即可,后續(xù)不要上傳。
nvm的使用
當(dāng)我們同時(shí)參與多個(gè)項(xiàng)目,而每個(gè)項(xiàng)目所使用的node版本都不一樣,此時(shí)就要使用到nvm版本管理工具,每次切換項(xiàng)目時(shí)切換對(duì)應(yīng)的node版本(麻煩的地方在于,每次切換項(xiàng)目,都需要切換對(duì)應(yīng)的node版本)。
nvm安裝與使用
windows nvm下載地址
選擇nvm-setup.zip下載即可。
檢驗(yàn)安裝是否成功:
cmd,輸入nvm -v,出現(xiàn)版本號(hào),說明安裝成功。
注意:
- 安裝nvm前,如果以前安裝過node的,必須先將node卸載掉,否則即使nvm安裝成功,nvm use version也提示成功,最終用的還是你原來的node版本;
- 選擇安裝目錄時(shí)直接放到根目錄即可,不要放到C:\Program Files目錄下,否則由于Program File 存在空格,在使用
nvm use [version]切換版本時(shí)會(huì)出現(xiàn)亂碼的情況:
image.png
如果嫌棄安裝node和npm包時(shí)速度太慢,可使用淘寶鏡像,找到nvm安裝目錄,在setting.txt中添加:
nvm node_mirror https://npm.taobao.org/mirrors/node/
nvm npm_mirror https://npm.taobao.org/mirrors/npm/
nvm使用
nvm list:查看已安裝過的版本
nvm use [version]:切換node版本,如:nvm use 11.15.0
參考
gulp打包錯(cuò)誤
How to fix "ReferenceError: primordials is not defined" error
nvm命令
nvm使用
npm-shrinkwrap.json
npm-shrinkwrap鎖定依賴
