Win7使用最新的node.js(版本18.16.0)
截至本文的发布时间2023.06.11,前端开发基础工具node.js的最新版本是 18.16.0 LTS
可能有人要问,为什么要研究node.js在Win7系统下的兼容情况呢?你直接用Win10不就行了?
如果你可以直接使用Win10,显然你不是这篇文章的推荐阅读对象,因为某些开发环境比较特殊,只能使用Win7而不允许使用Win10(如政府项目等,不过多解释,确实是有这种需求的)
先说结论,在Win7上是完全可以使用18.16.0版的node.js的。
只需要确保两个前提就可以了。
一、不要使用安装版本的node.js
如果你直接下载msi格式的安装包,在安装时会提示最低要求Win版本是Win8.1或Server 2012,然后拒绝安装。
所以我们直接转到Download页面下载zip格式的安装包就可以了,注意根据你的操作系统是32位还是64位下载对应的包。
下载回来之后,直接解压到设定的目录,如D:\dev,那么完整路径可能是 D:\dev\node-v18.16.0-win-x64 ,将这个路径加入到环境变量PATH里面就可以了。
二、确保Win7已经打了最新的补丁
有些同学在按上面的部署操作完之后,执行node -v可能会提示“无法定位程序输入点
EventSetInformation 于动态链接库ADVAPI32.dll上”
。如下:
这是因为没有打新的补丁,系统文件版本较老,当前的advapi32.dll中根本没有EventSetInformation
这个API函数(据MSDN,这个函数是Win8/Server2012才有的,所以这就是为什么node.js的msi安装版本会以这个作为最低操作系统版本)
但是,Win7新的补丁里面,advapi32.dll也有这个函数了,所以运行环境是完全没问题的。如果你运行node时有上面的提示,注意检查一下advapi32.dll的版本。
下图是可以正常运行新版node的文件版本,供读者参考(百度网盘链接:https://pan.baidu.com/s/1PspjtzV-BKoXC8zHiDu3Ug?pwd=yh8y )。
(感谢热心读者提供信息,补丁编号KB3080149, 下载地址是 https://www.microsoft.com/zh-cn/download/confirmation.aspx?id=48636)
但是这时候运行node还是会有一个警告提示:
要我说,其实node给这个提示完全没有必要。因为就两种结果,要么像上面一样找不到API函数直接跑不起来,这时候exe都没法执行成功,根本看不到这个提示。要么就是直接跑起来了,此时再提示完全没有必要。
就像你在火车上采访乘客有没有买到票一样,能坐在火车上的当然都有票喽~~ 我都跑起来了,你还警告我干啥
当然了,node既然提示了,也给出了解决办法,也就是设置一个环境变量就可以了。
set NODE_SKIP_PLATFORM_CHECK=1
然后再执行node -v就可以看到版本信息了.
注意看操作系统版本哦,6.1.7601,是Win7没错了。
不过每次都要手工设置太麻烦,我们把这个环境变量直接配置成固定的就可以了。
这样就可以愉快的使用新版本的node.js开发啦!