node npm nrm nvm gnvm 相爱相杀

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


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

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 npm@4 -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 相爱相杀_第2张图片

进入到下载页,选择最新发版的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 相爱相杀_第3张图片

2- 查看版本

nvm –version 

这里写图片描述

3- 查看所有node版本

nvm ls-remote

4- 切换node版本

nvm use v7.9.0

node npm nrm nvm gnvm 相爱相杀_第4张图片


如何清除已设置的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 相爱相杀_第5张图片

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


npm升级

方法一:

最粗暴办法:

npm install -g npm

方法二:

或者gnvm 切换node版本

1- 将gnvm放到node的根目录

2- 安装gnvm

先将 gvnm.exe放到node的根目录下面;
node npm nrm nvm gnvm 相爱相杀_第6张图片

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

node npm nrm nvm gnvm 相爱相杀_第7张图片

node npm nrm nvm gnvm 相爱相杀_第8张图片

node npm nrm nvm gnvm 相爱相杀_第9张图片

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

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

node npm nrm nvm gnvm 相爱相杀_第10张图片

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

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

node npm nrm nvm gnvm 相爱相杀_第12张图片

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

node npm nrm nvm gnvm 相爱相杀_第13张图片

node npm nrm nvm gnvm 相爱相杀_第14张图片


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


node npm nrm nvm gnvm 相爱相杀_第15张图片

node npm nrm nvm gnvm 相爱相杀_第16张图片

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

于是乎我去删除:

node npm nrm nvm gnvm 相爱相杀_第17张图片

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

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

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

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

效果展示:

node npm nrm nvm gnvm 相爱相杀_第18张图片

node npm nrm nvm gnvm 相爱相杀_第19张图片

git上的解释为:

node npm nrm nvm gnvm 相爱相杀_第20张图片

解决办法:

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

这时候你查看 package.json文件

node npm nrm nvm gnvm 相爱相杀_第21张图片

参考链接:

  • 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=✓&q=Cannot+find+module+'internal%2Futil%2Ftypes'
  • nvm 地址
    https://www.npmjs.com/package/nvm
  • nrm 地址
    https://www.npmjs.com/package/nrm

你可能感兴趣的:(前端开发)