node npm nrm nvm gnvm 相爱相杀

node npm nrm nvm gnvm 相爱相杀
写这篇文章之前我遇到了一个坑,为了一个坑我花了两天时间去搞懂里面的原理。


接下来我会围绕以下几点进行分析:

1- npm 降级

2- npm 升级

3- 如何清除已设置的npm淘宝镜像

4- 突发意外:node 和 npm 不兼容出现问题

5- antd 升级问题


npm降级

在 create-react-native-app 的时候发现,它们“强烈推荐”使用npm v3或者v4,因为v5还有些bug没解决,对于create-react-native-app不稳定
简单暴力的方法是

npm i [email protected] -g

但是这样子的太暴力,容易出现 node 版本和 npm 版本不兼容的问题。
所以这里推荐nvm ,进行node版本管理。

nvm是个啥?
nvm是一个可以让你在同一台机器上安装和切换不同版本node的工具!!!!

nvm地址: https://github.com/coreybutler/nvm-windows
nvm下载:https://github.com/coreybutler/nvm-windows/releases

node npm nrm nvm gnvm 相爱相杀

进入到下载页,选择最新发版的1.1.5版本,nvm-setup.zip进行下载,并且安装。预发行的,一般都不太稳定。

重点:

第一: windows用户安装windows补丁: http://www.3322.cc/soft/20130711258.html
第二: 在安装NVM for Windows之前,您需要卸载任何现有版本的node.js。
同时删除可能保留的任何现有nodejs安装目录(例如,“C:\ Program Files \ nodejs”)。

{ NVM生成的符号链接不会覆盖现有的(甚至是空的)安装目录 }

还应该删除现有的npm安装位置(例如“C:\ Users \ AppData \ Roaming \ npm”),以便正确使用nvm安装位置。安装完成后,必须为每个安装的节点版本重新安装全局实用程序(例如gulp)。

{ 对于我们项目来说:用户使用防病毒报告了一些问题,特别是McAffee }

安装nvm

在git中安装:

1- 安装

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.2/install.sh | bash

node npm nrm nvm gnvm 相爱相杀

2- 查看版本

nvm –version

node npm nrm nvm gnvm 相爱相杀

3- 查看所有node版本

nvm ls-remote

node npm nrm nvm gnvm 相爱相杀

4- 切换node版本

nvm use v7.9.0

node npm nrm nvm gnvm 相爱相杀


如何清除已设置的npm淘宝镜像

方法一:

设置淘宝的镜像是:

npm config set registry https://registry.npm.taobao.org

不想用他们的,再设置回原来的就可以了:

npm config set registry https://registry.npmjs.org

方法二:

npm config delete registry
npm config delete disturl

方法三: 使用nrm (镜像管理)

node npm nrm nvm gnvm 相爱相杀

看上面的命令不用我多说了,安装,查看,切换镜像。


npm升级

方法一:

最粗暴办法:

npm install -g npm

方法二:

或者gnvm 切换node版本

1- 将gnvm放到node的根目录

2- 安装gnvm

先将 gvnm.exe放到node的根目录下面;
node npm nrm nvm gnvm 相爱相杀

然后下面我再介绍使用办法:

node npm nrm nvm gnvm 相爱相杀

node npm nrm nvm gnvm 相爱相杀

node npm nrm nvm gnvm 相爱相杀

突发意外:node 和 npm 不兼容出现问题

比如同学或者同事把node和npm搞坏了,这个时候要怎么办呢?比如这个

node npm nrm nvm gnvm 相爱相杀

不要以为是少了一个包,试图去安装这个包没用的
node npm nrm nvm gnvm 相爱相杀

更新npm 版本,npm升级没用的!!!

node npm nrm nvm gnvm 相爱相杀

于是乎,我去github转了一圈,发现最近刚好有人遇到和我一样的问题

node npm nrm nvm gnvm 相爱相杀

node npm nrm nvm gnvm 相爱相杀


然后解决办法是这样子的:


node npm nrm nvm gnvm 相爱相杀

node npm nrm nvm gnvm 相爱相杀

黑人小哥回复我, 需要删除node 相关的依赖和环境变量和node, 然后在重新安装。

于是乎我去删除:

node npm nrm nvm gnvm 相爱相杀

然后重新安装了node ,发现就好了。这里呢,外国小哥,并没有说明为什么会有这样子的问题。

其实我理解为,对于node 和npm 都是先关连的,就像硬件的兼容性一样,不一定都是稳定配置或者高配置就可以结合在一起,两者之间都是有相互作用的。

补充一个 antd design 2.0版本的一个BUG

关于antd2.9 版本以前对于,表单中 下拉选择中历史记录并未做处理,在2.9版本之后进行了,添加原生 antocomplete=”off”,所以升级到2的最后一个版本2.13.14

效果展示:

node npm nrm nvm gnvm 相爱相杀

node npm nrm nvm gnvm 相爱相杀

git上的解释为:

node npm nrm nvm gnvm 相爱相杀

解决办法:

npm install [email protected]
升级antd到2的最后一个版本,不要到3 要不会出现一些问题。

这时候你查看 package.json文件

node npm nrm nvm gnvm 相爱相杀

参考链接: