node版本的切换(转)
大量开发者的贡献使Node版本的迭代速度很快,版本很多(横跨0.6到0.11),所以升级Node版本就成为了一个问题。目前有n和nvm这两个工具可以对Node进行无痛升级,本文简单介绍一下二者的使用。
今天的话题包括2个部分
1. node.js 下使用 nvm 或者 n 来进行版本控制
2. nvm 安装node.js 版本后,重启终端 node , npm 环境变量失效
第一部分用什么来管理 node.js 版本
首先应该欢呼庆祝一下 node.js 终于发布了有历史意义的正式版 1.0 ,虽然我们看到的是V4.0,其实他就是node.js 真正意义的 1.0, io.js 不负众望,完成了它的使命.
回头看这几年node.js 以及 io.js 的发展速度,各种版本的迭代发布,我们很有必要用一个 node.js 的版本管理工具来控制当前系统的 node.js 版本.
为什么这样做?
在新的版本中已经用上了最新的V8引擎,ES 6的所有新特性一展身手,你能忍得住吗?
但是,如果你鲁莽升级,第一个问题是 你的开发环境和线上发布环境可能不一样,那么后果就不用多少了,出了问题 等着老板来鞭尸吧.
第二个问题 可能是之前的一些开源包需要重新编译,尤其是 c++ 模块写的.
所以,你需要一个 node.js 的版本管理软件
现在流行的 node.js 版本管理有哪些?
nvm
我们使用 brew 安装 nvm
1 |
brew install nvm |
这里要注意
brew 安装后一定要在你的 bash 或者 zsh 配置文件中设置一下,否则 当你重新启动终端,你会发现 node ,npm 环境变量都失效了
这里要穿插说一下我们要分享的第二个话题
nvm 重启后终端 node ,npm 失效的解决方案
如果你使用了上面的 brew 的安装方法
当安装成功后,请按照如下操作设置你的 shell 配置文件
1 |
brew info nvm |
你会看到下面的输出帮助信息
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
nvm: stable 0.26.1 (bottled), HEAD Manage multiple Node.js versions https://github.com/creationix/nvm /usr/local/Cellar/nvm/0.26.1 (3173 files, 56M) * Poured from bottle From: https://github.com/Homebrew/homebrew/blob/master/Library/Formula/nvm.rb ==> Caveats Add NVM's working directory to your $HOME path (if it doesn't exist): mkdir ~/.nvm Copy nvm-exec to NVM's working directory cp $(brew --prefix nvm)/nvm-exec ~/.nvm/ Add the following to $HOME/.bashrc, $HOME/.zshrc, or your shell's equivalent configuration file: export NVM_DIR=~/.nvm source $(brew --prefix nvm)/nvm.sh Type `nvm help` for further information. Bash completion has been installed to: /usr/local/etc/bash_completion.d |
我们需要按照上面提供的方法,首先在用户更目录下 创建 .nvm 文件
1 |
mkdir ~/.nvm |
然后把 nvm-exec 文件拷贝到你刚才新建的 .nvm 目录下
1 |
cp $(brew --prefix nvm)/nvm-exec ~/.nvm/ |
然后去编辑你的 bash 配置文件 $HOME/.bashrc ,如果你 使用 zsh 那么编辑 $HOME/.zshrc 配置文件
1 |
nano ~/.bashrc |
或
1 |
nano ~/.zshrc |
把下面的内容粘贴进去
1 2 |
export NVM_DIR=~/.nvm source $(brew --prefix nvm)/nvm.sh |
最后让你的 shell 配置及时生效
1 |
source ~/.bashrc |
或
1 |
`source ~/.zshrc' |
最后你就不会再出现关闭终端重启,或者重启机器发现 node ,npm 等系统环境变量失效的问题了.
nvm 和 n 的区别
nvm 类似于 Python 的 virtualenv 或者 Ruby 的 rvm ,它是一个独立安装的软件
n 其实是一个 npm 全局的开源包 ,需要使用 npm 来全局安装
n 更加轻巧,但是 nvm 更加独立.
假如你有一台新带电脑,如果你想使用 版本管理,那么 nvm 是你的选择,因为它的独立的软件,安装后你可以随意下载切换你需要的版本.
但是 n 是依赖在 npm 下的一个包,也就是说 你的电脑环境还没有 node / npm 的时候,你还用不了 n .
所以在使用的时候,大家可以针对自己的情况权衡.我本人使用 nvm 来控制 node 版本.
nvm 使用
查看可以安装的版本
1 |
nvm ls-remote |
查看已经安装的版本
1 |
nvm ls |
安装一个指定的版本
1 |
nvm install <version> |
上面的 version 可以指定你在 nvm ls-remote 里面列出来的版本号即可
删除指定版本
1 |
nvm use <version> |
n 的安装
1 |
npm install -g n |
当然,你还可以去 github 下载你的源代码自己本地编译
1 2 3 4 5 |
$ git clone https://github.com/visionmedia/n.git $ cd n $ [sudo] make install n 安装指定版本 n stable/laster/< version> |
在 n 后面更一个标识 stable 标识最新稳定版, laster 标识最新版 ,<version> 就是你可以具体指定一个版本号
1 2 3 4 5 |
n 使用一个版本 n use <version> n 删除一个版本 n rm <version> |
node版本的切换(转)的更多相关文章
- 【前端开发】nrm切换淘宝镜像&nvm管理node版本及切换
说明:nrm是切换淘宝镜像用的,nvm是node的版本切换用的(可在自己电脑安装多个版本node,便于不同项目的支持) 一.nrm的安装及常见命令: 安装nrmnpm install -g nrm 查 ...
- 使用GNVM工具高效切换node版本
在开发中,有时候需要在多个node版本之间切换,重复手动下载安装node安装包来切换版本很麻烦,在Mac系统中可以使用nvm工具,而windows系统无法使用nvm工具.gnvm解决了在windows ...
- nvmw安装,用于控制node版本;
之前一直使用的是node v2.2.0版本,挺说新版本的node解决了npm安装插件产生文件夹结构过深的问题,所以就想更新试试: 上网一看才发现,尼玛的node已经到了6.+版本了,好吧,看来还是得跟 ...
- nvm管理node版本
一.介绍与作用 不同的项目中可能使用的node版本不同,对于维护多个版本的node就是一件麻烦事了,而nvm就可以很方便的管理不同的node版本, 可以在不同的node版本间切换使用.NVM资源(针对 ...
- 使用nvm管理node不同版本,安装,环境配置,切换不同版本的node版本
文章包含以下内容: 一.下载地址 二.nvm-noinstall.zip安装 三.nvm-setup.zip安装 四.测试安装以及使用 一.下载地址 https://github.com/coreyb ...
- 如何在windows下切换node版本
安装nvm 最近的项目中,一个是用vue项目开发,一个是使用react开发,但是ant design pro使用了umi框架,所需要的node版本>10.0.0,vue那个项目中又不兼容node ...
- node版本切换工具n的使用介绍
全局安装 npm install -g n mac的安装目录/usr/local/n/versions/node/13.2.0 因此首先在/usr/local/创建目录n,修改权限为普通访问权限,这样 ...
- 使用nvm利器,管理node版本
node.js越来越热,应用的场景也越来越多. 但也因为是开源软件,所以具备大多数开源软件都存在的“版本问题”,版本发展很快,版本前后差异性大,老系统用新版本node跑不过,全局安装的第三方组件和no ...
- windows下装多个node版本的方法(gnvm)
安装一个支持windows切换node版本的工具 工作中我们可能需要用到一些工具,但这些工具依赖不同版本的node环境,那我们需要来为的切换node的环境吗, window msi安装的用户需要卸 ...
随机推荐
- 「HNOI 2013」游走
题目链接 戳我 \(Solution\) 首先申明几个变量: f[x]:到点x的概率, vis[x]:x点的度 dp[x][y]:(x,y)这条边的概率 number[x][y]:x这条边的编号 下面 ...
- HTTP响应状态码参考
HTTP响应状态码参考: 1xx:信息 Continue 服务器仅接收到部分请求,但是一旦服务器并没有拒绝该请求,客户端应该继续发送其余的请求. Switching Protocols 服务器转换协议 ...
- IO模型《四》多路复用IO
多路复用IO(IO multiplexing) IO multiplexing这个词可能有点陌生,但是如果我说select/epoll,大概就都能明白了.有些地方也称这种IO方式为事件驱动IO (ev ...
- “全栈2019”Java第六十一章:如何实现接口?
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
- Linux 与 Windows 搭建域名解析
实现 Win2012-D1 中 DNS 服务器的冗余备份,同时提供本域内主机名与 IP 地址的解析,此域名服务器的地址数据库需要 Win2012-D1 中定期更新. 假设环境:Server12 以及 ...
- 8,Phaser__并发且多阶段任务
使用场景 考选武状元 10 个 武生 参加考试 ,第一个关 靠耐力, 坚持最久的5个人进入第二关, 第二关考 力气,力气最大的 3个人进入第二关,第三关考兵法,兵法最好的当选武状元
- POJ1475 Pushing Boxes(双搜索)
POJ1475 Pushing Boxes 推箱子,#表示墙,B表示箱子的起点,T表示箱子的目标位置,S表示人的起点 本题没有 Special Judge,多解时,先最小化箱子被推动的次数,再最小化 ...
- P4097 [HEOI2013]Segment 李超线段树
$ \color{#0066ff}{ 题目描述 }$ 要求在平面直角坐标系下维护两个操作: 在平面上加入一条线段.记第 i 条被插入的线段的标号为 i 给定一个数 k,询问与直线 x = k 相交的线 ...
- 北京DNS
202.106.0.20 202.106.196.115 202.106.46.151
- 编写高质量代码:Web前端开发修炼之道(三)
第五章:高质量的Javascript 这章的内容我看的最久,这是跟我js基础没打好有着莫大的关系,但是还是耐着性子看完了, 不懂的东西都是百度上搜索,理解后再继续.下面是记录下来的笔记. 1)如何避免 ...