??去年年底發(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ò)誤:

??我在仔細(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版本,如下:

??找到問(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后,然后按照Github上nvm安裝文檔一步一步安裝就好了。有了nvm你就可以隨心所欲的安裝,切換你想要任何版本的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)更大的痛苦。