從parcel.js打包出錯(cuò),到擁抱nvm

??去年年底發(fā)布的parcel.js在年底可謂是火了一把,短短一個(gè)多月的時(shí)間在GitHub熱門(mén)排行榜上名列前茅。因其幾乎零配置的易用性,相比Webpack的復(fù)雜配置收獲了大量關(guān)注及好評(píng),甚至有人預(yù)言未來(lái)大有超過(guò)Webpack之趨。我也趕緊嘗試一下,發(fā)現(xiàn)確實(shí)非常簡(jiǎn)單易用,但是一開(kāi)始,插件還是比較少,相信未來(lái)會(huì)越來(lái)越成熟好用。以后如果有機(jī)會(huì)我會(huì)專(zhuān)門(mén)寫(xiě)一篇關(guān)于parcel.js的文章,說(shuō)了那么多廢話(huà),其實(shí)接下來(lái)我要說(shuō)的是nvm(2333...)

遇到問(wèn)題

??我在使用parcel.js打包項(xiàng)目的時(shí)候出現(xiàn)了下面的錯(cuò)誤:

報(bào)錯(cuò)打印

??我在仔細(xì)檢查完代碼并且核實(shí)項(xiàng)目配置沒(méi)有問(wèn)題后,沒(méi)辦法只能求助萬(wàn)能的Google,結(jié)果在GitHub上找到了錯(cuò)誤的原因,<b>parcel.js使用了Async 函數(shù),默認(rèn)Node.js 8以上才支持的,低于8的話(huà)需要使用babel配置。</b>我查看了一下自己的Node.js版本,如下:


當(dāng)前node版本

??找到問(wèn)題原因后,我想升級(jí)一下node不就解決問(wèn)題了。但又一想,公司最近在做的項(xiàng)目有用到node,貿(mào)然升級(jí)項(xiàng)目報(bào)錯(cuò)就麻煩了。這時(shí)候,我想到了nvm,其實(shí)很早之前就看過(guò),當(dāng)時(shí)覺(jué)得電腦已經(jīng)安裝了node環(huán)境了,卸載重新安裝費(fèi)事就沒(méi)有用它。但是現(xiàn)在需要用新版本的node才可以用parcel.js,我決定卸載node,重新用nvm安裝,管理node版本。
??首先我遇到的問(wèn)題就是mac下如何徹底卸載node呢,因?yàn)楫?dāng)時(shí)使用Homebrew安裝的,感覺(jué)直接卸載,應(yīng)該不徹底。于是我上網(wǎng)查了很多文檔,親身實(shí)踐如下:

Mac os下徹底卸載node

1.刪除/usr/local/lib中的所有node和node_modules
2.刪除/usr/local/lib中的所有node和node_modules的文件夾
3.如果是從brew安裝的, 運(yùn)行brew uninstall node
4.檢查~/中所有的local, lib或者include文件夾, 刪除里面所有node和node_modules
5.在/usr/local/bin中, 刪除所有node的可執(zhí)行文件
6.最后運(yùn)行以下代碼:
sudo rm /usr/local/bin/npm
sudo rm /usr/local/share/man/man1/node.1
sudo rm /usr/local/lib/dtrace/node.d
sudo rm -rf ~/.npm
sudo rm -rf ~/.node-gyp
sudo rm /opt/local/bin/node
sudo rm /opt/local/include/node
sudo rm -rf /opt/local/lib/node_modules
(感謝知乎@haochuan)

??徹底卸載完node后,然后按照Githubnvm安裝文檔一步一步安裝就好了。有了nvm你就可以隨心所欲的安裝,切換你想要任何版本的node了。

已安裝node版本

??哈哈,隨便切換node版本,感覺(jué)真棒。

經(jīng)過(guò)這件事,我在思考,其實(shí)我很早就知道了會(huì)有遇到node版本這個(gè)問(wèn)題。但是怕麻煩就沒(méi)有理會(huì),總感覺(jué)不一定會(huì)遇到,但是真到遇到了,還是要解決的。平時(shí)寫(xiě)代碼也是一樣的,考慮全面再去實(shí)現(xiàn)代碼,哪些模塊需要封裝,都要考慮好,并實(shí)現(xiàn)。不能因?yàn)槁闊┚筒蝗プ?,?dāng)你最終遇到自己留下的坑的時(shí)候,還是要自己去填的。往往填坑的同時(shí)會(huì)帶來(lái)更大的痛苦。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容