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
进入到下载页,选择最新发版的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
2- 查看版本
nvm –version
3- 查看所有node版本
nvm ls-remote
4- 切换node版本
nvm use v7.9.0
如何清除已设置的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 (镜像管理)
看上面的命令不用我多说了,安装,查看,切换镜像。
npm升级
方法一:
最粗暴办法:
npm install -g npm
方法二:
或者gnvm 切换node版本
1- 将gnvm放到node的根目录
2- 安装gnvm
先将 gvnm.exe放到node的根目录下面;
然后下面我再介绍使用办法:
突发意外:node 和 npm 不兼容出现问题
比如同学或者同事把node和npm搞坏了,这个时候要怎么办呢?比如这个
不要以为是少了一个包,试图去安装这个包没用的
更新npm 版本,npm升级没用的!!!
于是乎,我去github转了一圈,发现最近刚好有人遇到和我一样的问题
然后解决办法是这样子的:
黑人小哥回复我, 需要删除node 相关的依赖和环境变量和node, 然后在重新安装。
于是乎我去删除:
然后重新安装了node ,发现就好了。这里呢,外国小哥,并没有说明为什么会有这样子的问题。
其实我理解为,对于node 和npm 都是先关连的,就像硬件的兼容性一样,不一定都是稳定配置或者高配置就可以结合在一起,两者之间都是有相互作用的。
补充一个 antd design 2.0版本的一个BUG
关于antd2.9 版本以前对于,表单中 下拉选择中历史记录并未做处理,在2.9版本之后进行了,添加原生 antocomplete=”off”,所以升级到2的最后一个版本2.13.14
效果展示:
git上的解释为:
解决办法:
npm install [email protected]
升级antd到2的最后一个版本,不要到3 要不会出现一些问题。
这时候你查看 package.json文件
参考链接:
- node官网
https://nodejs.org/en/download/ - gnvm官网:
https://github.com/Kenshin/gnvm - antd官网
http://ant.design/index-cn - git问题地址:
https://github.com/npm/npm/issues?utf8=%E2%9C%93&q=Cannot+find+module+%27internal%2Futil%2Ftypes%27 - nvm 地址
https://www.npmjs.com/package/nvm - nrm 地址
https://www.npmjs.com/package/nrm