windows下运行多个版本node.js

摘要:
notok万般无奈之下,想到同时运行两个不同版本的node.js。linux版本下有nvm能达到此目,在windows下我用到了nvmw。但是,根源无非是得到不同版本的node.exe。我们可以在淘宝源路径上手动下载对应版本的node.exe,然后放到D:vmw文件夹中,不同版本文件夹。如果先指定运行哪个版本node:C:UsersAdministrator˃nvmwusev0.10.22NowusingNodev0.10.22C:UsersAdministrator˃node-vv0.10.22每个cmd窗口之间相互独立,想要使用node.js,必须先指定所要运行的版本!多开几个cmd窗口,指定不同的运行版本,就可以在一台电脑上跑多个node.js版本的程序了!

这段时间,一直在处理一个问题。windows下node.js调用dll(c++),用到了ffi,ref,ref-struct模块,在node v0.10.22版本下运行正常,但高版本node下会出错(经测试,0.12.x往上就不好使了): 

Error: The specified procedure could not be found.

高版本node下重新编译ffi等模块也均告失败,会报出一大堆语法错误之后:

gyp ERR! build error
gyp ERR! stack Error: `C:WindowsMicrosoft.NETFrameworkv4.0.30319msbuild.exe` failed with exit c
ode: 1
gyp ERR! stack     at ChildProcess.onExit (E:	ools
vmwv5.5.0
ode_modules
ode-gyplibuild.js:2
76:23)
gyp ERR! stack     at emitTwo (events.js:87:13)
gyp ERR! stack     at ChildProcess.emit (events.js:172:7)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:200:12)
gyp ERR! System Windows_NT 6.1.7601
gyp ERR! command "E:\tools\nvmw\v5.5.0\node.exe" "E:\tools\nvmw\v5.5.0\node_modules\node-gy
p\bin\node-gyp.js" "rebuild"
gyp ERR! cwd D:phpStudyWWW
es2adalingclient	icketStorage
ode_modulesffi
gyp ERR! node -v v5.3.0
gyp ERR! node-gyp -v v3.3.1
gyp ERR! not ok

万般无奈之下,想到同时运行两个不同版本的node.js。linux版本下有nvm能达到此目,在windows下我用到了nvmw。

nvmw下载地址:http://pan.baidu.com/s/1xdmf3, 直接解压缩就行,比如解压到D: vmw文件夹中,将D: vmw vmw.bat添加到系统环境变量中,以便可以到处运行nvmw命令。

然而问题又来了,nvmw用法如下:

Usage:
  nvmw help                    Show this message
  nvmw install [version]       Download and install a [version]
  nvmw uninstall [version]     Uninstall a [version]
  nvmw use [version]           Modify PATH to use [version]
  nvmw ls                      List installed versions

Example:
  nvmw install v0.6.0          Install a specific version number
  nvmw use v0.6.0              Use the specific version

但是运行安装命令时,由于国外源的问题,一直安装失败,我换了淘宝的源后也是一直失败。但是,根源无非是得到不同版本的node.exe。我们可以在淘宝源路径上(https://npm.taobao.org/mirrors/node/)手动下载对应版本的node.exe,然后放到D: vmw文件夹中,不同版本文件夹。

nvmw
    v0.10.22
        node.exe
    v5.3.0
        node.exe

如上安装了两个版本的node,运行nvmw ls:

C:UsersAdministrator>nvmw ls
v0.10.22
v5.3.0
Current: none

每开一个cmd命令窗口时,如果没有运行nvmw use命令,则无法运行node和npm命令:

C:UsersAdministrator>node -v
'node' 不是内部或外部命令,也不是可运行的程序
或批处理文件。

如果先指定运行哪个版本node:

C:UsersAdministrator>nvmw use v0.10.22
Now using Node v0.10.22

C:UsersAdministrator>node -v
v0.10.22

每个cmd窗口之间相互独立,想要使用node.js,必须先指定所要运行的版本!多开几个cmd窗口,指定不同的运行版本,就可以在一台电脑上跑多个node.js版本的程序了!

ps:用以上模块调dll难免会遇到各种各样的问题,毕竟是第三方模块,作者如果后期不进行维护,很难保证在新版本node上好使。nodejs调用dll动态库还可以通过写addon来实现,但是所调用的dll涉及到结构体,较难处理,以及本人c++水平有限,还是没能深入研究。

免责声明:文章转载自《windows下运行多个版本node.js》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇SQl Server Tsql基本编程 ,循环语句 ,存储过程Navicat for MySQL 选项设置技巧详解下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

季调方法论

理论与实践“季节性调整原则季节性调整方法分析季节性调整实践中遇到的问题只有同比数据缺少春节效应阅读”通货膨胀的季节性调整和预测模型“通货膨胀预测CPI的季节性调整具有明显的春节效应考虑春节效应的季节性调节春节效应的确定CPI的季节调整基于季节性调整后CPI的预测通货膨胀的修正(应对非洲猪瘟的影响)修订并扩大了季度调查方法的CPI预测读数...

c# Socket心跳试验,自定义发送包 和 使用KeepAlive

我记录了我心跳的位置,但WireShark无法检测到正在发送的消息,主要是因为发送的数据大小为0。如果网络电缆被拔掉,下次检测到心跳时就会报告错误。虽然这种方法可以检测套接字是否断开,但它不是很好,响应也不及时。当使用KeepAlive时,WireShark通常会检测到它不停地向Socket服务器发送消息,即心跳检测。图:通过三次握手(前三次握手)建立连接后...

flutter vscode+第三方安卓模拟器

1.首先打开夜曲模拟器2.Win+R,选择cmd,在第三方模拟器安装目录的bin目录下输入夜曲模拟器,然后运行命令:nox_Adb.execonnect127.0.0.1:620013。打开项目终端的vscode并建立连接:adbconnect127.00.1:62001(夜神模拟器的默认端口)4。查看连接:adbdevices或不使用第三方模拟器:1.打开...

Docker(一)

Docker的优势:1.更高效的利用系统资源。docker-v:查看Docker版本。dockerhistory:查看镜像内的历史记录。dockerdiff:查看修改的内容。使用Dockerfile定制镜像:1.以之前定制nginx镜像为例,这次我们使用Dockerfile来定制。操作Docker容器:启动容器有两种方式:一种:是基于镜像新建一个容器并启动,...

Selenium模拟操作中按钮点击(click) 失效解决方法

在使用硒模拟操作时,我们经常会遇到一些原始方法无法解决的问题。然而,在网站的登录框中,直接位置按钮的点击元素无效,返回键也无效。分析应该是重点,但不可能尝试很多方法。实验结束后,当焦点位于登录框的用户文本框中时,按Enter键将依次从用户名框、密码框移动到提交按钮。最常见的文本框输入问题是由文本框的占位符引起的。但该方法仍然无法处理它,只能执行Script。...

Latex添加参考文献

如何用.bib文件自动生成论文Reference一般期刊或会议给的Latex模板会自带参考文献样式,因此,可以利用.bib文件来自动生成该模板下的参考文献样式。下面以引用以下三篇论文为例,来说明如何生成.bib文件,然后利用.bib文件自动生成Reference。引用论文:1.生成.bib文件(1)新建一个.txt文件;(2)打开Google学术,搜索你想要...