去年年底发布的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
版本这个问题。但是怕麻烦就没有理会,总感觉不一定会遇到,但是真到遇到了,还是要解决的。平时写代码也是一样的,考虑全面再去实现代码,哪些模块需要封装,都要考虑好,并实现。不能因为麻烦就不去做,当你最终遇到自己留下的坑的时候,还是要自己去填的。往往填坑的同时会带来更大的痛苦。