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