美文网首页
关于nodejs 降级,少年你要先看这

关于nodejs 降级,少年你要先看这

作者: 壮哉我大前端 | 来源:发表于2017-02-15 10:46 被阅读0次

    写在前面

    前几天写了一篇关于node降级的文章

    如何nodejs 降级,安装低版本

    但在实际操作中,发现不是我想要的。

    为啥这样说呢?那先说说nvm的实现方法。

    nvm是将每个node版本的模块都会被安装在各自版本的沙箱里面。
    它的安装目录是在用户文件目录里的,也就是(/Users/(youname)/.nvm/)。
    当在使用某个版本的时候,安装的程序都运行在各自版本的沙箱里,这使得它能方便针对不同的项目运行不同的node版本,不用再修改系统所使用的node。

    说到这里可能你不是很懂。但你只要知道如果你之前已经全局安装过node的话,那你之前安装的全局模块(例如grunt、gulp)就执行不了了。。。不了了。。。了了。。。了。。。

    因为你全局安装的node是存放在/usr/local/bin里的,和nvm运行的目录不一样。

    关于nvm正确打开方法

    最好你是没全局安装过node,那恭喜你,直接安装或使用nvm就好了。

    如果你安装过了呢?那就。。。

    卸载已安装到全局的 node/npm

    npm ls -g --depth=0 #查看已经安装在全局的模块,以便删除这些全局模块后再按照不同的 node 版本重新进行全局安装
    sudo rm -rf /usr/local/lib/node_modules #删除全局 node_modules 目录
    sudo rm /usr/local/bin/node #删除 node
    cd /usr/local/bin && ls -l | grep "../lib/node_modules/" | awk '{print $9}'| xargs rm #删除全局 node 模块注册的软链

    然后你就可以继续使用nvm了。

    如果你不想卸载了全局的node,又还能切换不同版本的node怎么办?

    n

    n是node的一个模块, 是一个需要全局安装的 npm package。安装命令:

    npm install -g n

    因为和node放在一起,mac用户自动前面加 sudo

    由于n是node的模块而已,windows用户也可以用了(是不是松口气不用换电脑了)

    如何使用n

    安装最新的版本

    n latest

    安装稳定版本

    n stable

    安装或使用某个版本

    n 6.9.1

    删除某个版本

    n rm 4.4.7

    不过n也有它的缺点,就是n对已经安装的全局模块是不作为的。
    也就是说,如果你有某个全局模块使用了这个版本的node来安装的,当你切换成别的版本的时候,可能由于版本问题,这个全局模块就不能用了。

    via: https://github.com/tj/n

    选择使用n还是nvm呢?

    1.如果你使用 Windows,那没得选了,使用 n,或者换一台 Mac。
    2.如果你会频繁切换 node 版本(比如本地经常测试最新版的特性,同时又要兼顾代码在生产环境的兼容性),那么从全局模块兼容性的角度考虑,只能使用 nvm。
    3.如果你是一个轻量级的用户,不需要担心兼容性的问题,更关心 node 安装和使用上的体验,那么选择 n。

    最后给入了nvm的坑但又不想用的同学卸载nvm的方法。

    卸载nvm

    删除目录

    rm -rf ~/.nvm
    rm -rf ~/.npm
    rm -rf ~/.bower

    还需要删除下.bash_profile文件中的配置,将下面的内容去掉就好

    export NVM_DIR="$HOME/.nvm"
    [ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm

    最后重启一下shell。

    参考文章: How to uninstall nvm? #298

    ————
    前端·小h
    纸上得来终觉浅,绝知此事要躬行

    相关文章

      网友评论

          本文标题:关于nodejs 降级,少年你要先看这

          本文链接:https://www.haomeiwen.com/subject/frafwttx.html