去年年底發佈的parcel.js在年底可謂是火了一把,短短一個多月的時間在GitHub熱門排行榜上名列前茅。因其幾乎零配置的易用性,相比Webpack的複雜配置收穫了大量關註及好評,甚至有人預言未來大有超過Webpack之趨。我也趕緊嘗試一下,發現確實非常簡單易用,但是一開始,插件還是比較少,相信未 ...
去年年底發佈的parcel.js在年底可謂是火了一把,短短一個多月的時間在GitHub熱門排行榜上名列前茅。因其幾乎零配置的易用性,相比Webpack的複雜配置收穫了大量關註及好評,甚至有人預言未來大有超過Webpack之趨。我也趕緊嘗試一下,發現確實非常簡單易用,但是一開始,插件還是比較少,相信未來會越來越成熟好用。以後如果有機會我會專門寫一篇關於parcel.js的文章,說了那麼多廢話,其實接下來我要說的是nvm(2333...)
遇到問題
我在使用parcel.js
打包項目的時候出現了下麵的錯誤:
我在仔細檢查完代碼並且核實項目配置沒有問題後,沒辦法只能求助萬能的Google,結果在GitHub上找到了錯誤的原因,parcel.js使用了Async 函數,預設Node.js 8以上才支持的,低於8的話需要使用babel配置。我查看了一下自己的Node.js版本,如下:
找到問題原因後,我想升級一下node
不就解決問題了。但又一想,公司最近在做的項目有用到node
,貿然升級項目報錯就麻煩了。這時候,我想到了nvm
,其實很早之前就看過,當時覺得電腦已經安裝了node
環境了,卸載重新安裝費事就沒有用它。但是現在需要用新版本的node
才可以用parcel.js
,我決定卸載node
,重新用nvm
安裝,管理node
版本。
首先我遇到的問題就是mac
下如何徹底卸載node
呢,因為當時使用Homebrew
安裝的,感覺直接卸載,應該不徹底。於是我上網查了很多文檔,親身實踐如下:
Mac os下徹底卸載node
1.刪除/usr/local/lib中的所有node和node_modules
2.刪除/usr/local/lib中的所有node和node_modules的文件夾
3.如果是從brew安裝的, 運行brew uninstall node
4.檢查~/中所有的local, lib或者include文件夾, 刪除裡面所有node和node_modules
5.在/usr/local/bin中, 刪除所有node的可執行文件
6.最後運行以下代碼:
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
版本,感覺真棒。
經過這件事,我在思考,其實我很早就知道了會有遇到
node
版本這個問題。但是怕麻煩就沒有理會,總感覺不一定會遇到,但是真到遇到了,還是要解決的。平時寫代碼也是一樣的,考慮全面再去實現代碼,哪些模塊需要封裝,都要考慮好,並實現。不能因為麻煩就不去做,當你最終遇到自己留下的坑的時候,還是要自己去填的。往往填坑的同時會帶來更大的痛苦。