随着前端技术的不断更新和发展,nodejs也越来越流行,作为一个web developer,要安装的依赖包、工具库也越来越多,所以npm几乎是所有前端开发者所必须要用到的,我在工作中曾经遇到过这样的问题,我在工作中需要和同事共同开发一个项目,我去git上把他的代码拉下来,习惯性的运行npm install,但是控制台报错了,说是node版本错误,于是我按要求重新下载了新版本的node,然后安装---->开发,几天后,该项目完了,我要回去继续开发我之前的项目,结果一回到之前那个项目,又报错node版本错误。。。这时我才意识到原来不同的项目也许会用到不同版本的node,但是我又想,此时难道我又要卸载当前的node,重新去下载安装吗,百度一下,发现了nvm这个东西,nvm是什么呢?nvm是node的版本管理工具,即:通过nvm我们可以随意切换当前系统里面的node版本,安装了nvm之后我们就可以安装npm,即不同版本的npm,安装了npm之后我们便可以使用镜像下载几乎所有的依赖包和工具库,但是我们可能有时候网络不太好或者某些原因会导致我们的下载速度很慢,此时我们可以安装/切换不同的镜像来下载我们所需要的包,比如说cnpm、taobao等,但是我们每次也不知道到底从哪个镜像下载才是最快的,所以此时我们便需要用到nrm,nrm是开发的npm registry 管理工具, 能够查看和切换当前使用的registry,综上所述,所以我们安装npm的时候应该是如下顺序:

首先安装nvm------->再安装npm------->最后安装nrm

具体步骤如下:

1.macOS和windows两个所用的不同,mac直接安装nvm,windows则需要安装nvmw或者nvm-windows,因为我安装的是nvm-windows,下载地址:https://github.com/coreybutler/nvm-windows

2.利用nvm安装node

  #nvm install 4.2.0(需要下载的版本号)或者 #nvm install(默认下载最新版本) 或者 #nvm install stable(下载稳定版本)

3.利用npm 下载nrm :  #npm install -g nrm

nvm常用命令:

  #nvm install <version>  ## 安装指定版本,可模糊安装,如:安装v4.4.0,既可nvm install v4.4.0,又可nvm install 4.4

  #nvm uninstall <version>  ## 删除已安装的指定版本,语法与install类似

  #nvm use <version>  ## 切换使用指定的版本node

  #nvm ls  ## 列出所有安装的版本

  #nvm ls-remote  ## 列出所以远程服务器的版本(官方node version list)

  #nvm current  ## 显示当前的版本

  #nvm alias <name> <version>  ## 给不同的版本号添加别名

  #nvm unalias <name>  ## 删除已定义的别名

  #nvm reinstall-packages <version>  ## 在当前版本node环境下,重新全局安装指定版本号的npm包

npm常用命令:

  #npm install gulp或者#npm install gulp@ <version>     ## 安装某插件

  #npm install gulp -g    ## 全局安装

  #npm install gulp --save-dev    ## 将安装包信息将加入到devDependencies(开发阶段的依赖)

  #npm install gulp --save    ## 将安装包信息将加入到dependencies(生产阶段的依赖)

nrm常用命令:

  #nrm ls    ## 查看所有可以用的镜像

  #nrm test    ## 测试所有镜像的服务器连接时间,可选择出哪个地址最快

  #nrm use taobao  ## 切换所用镜像(注意:切换后还是使用npm install命令,而不是taobao install)

最新文章

  1. php内核分析(二)-ZTS和zend_try
  2. js限制输入框只能输入数字
  3. Mac OS X 安装Win7双系统
  4. JS中try....catch
  5. SQL Server2008创建约束图解
  6. Asp.Net 上传图片并生成高清晰缩略图(转)
  7. Google Protocol Buffer
  8. C#中保留2位小数
  9. Java文件操作 读写操作
  10. iOS-assign、copy 、retain等关键字的含义
  11. Linux内核设计基础(十)之内核开发与总结
  12. android的消息通知栏
  13. [Swift]LeetCode332. 重新安排行程 | Reconstruct Itinerary
  14. Bokeh
  15. 业务开发(五)—— Java代码
  16. 学习用Node.js和Elasticsearch构建搜索引擎(7):零停机时间更新索引配置或迁移索引
  17. HDFS集群数据不均衡处理
  18. windows环境telnet发送命令
  19. 设置js同源
  20. SNAT DNAT MASQUERADE 区别

热门文章

  1. hdu2665 主席树(可持久化线段树)
  2. hdu 5243 Homework
  3. 格式化SQL和逆格式SQL
  4. 【.Net 】Json和Xml解析
  5. 关于调接口和腾讯云cos方面。
  6. android 关于Toast重复显示解决方法
  7. 微服务:Eureka配置集群环境
  8. Linux-软件安装管理
  9. 剑指offer--8.调整数组顺序使奇数位于偶数前面
  10. hdu 4445 Crazy Tank(物理过程枚举)