通过安装程序(MSI)Windows 7更新Node.js时没有看到最新版本

时间:2014-05-29 18:16:38

标签: windows node.js npm

我正在尝试更新Windows 7机器上的节点,但是在重新安装/更新节点后我没有看到最新版本。

我只是前往http://nodejs.org/download/并获取最新的Windows安装程序 v0.10.28 。然后我运行该安装程序,默认安装在本地硬盘上的所有内容,包括npm,这很酷,因为我也想升级它。

安装运行/完成没有明显问题,但是当我执行:

node --version

我仍然看到我的“旧”版本 v0.10.15 ,而不是我原本应该安装的最新版本,v0.10.28。我的npm版本仍然会报告我的“旧”版本。

我也试过重启。

如何更新节点/ npm?

9 个答案:

答案 0 :(得分:14)

我有一个类似的问题,但在MacOS上,原因是我安装了<!doctype HTML> <head> <link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/themes/smoothness/jq‌​uery-ui.css"> <link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css"> <link rel="stylesheet" href="css/venview.css"> </head> <body> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.js"></script> <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/jquery-ui.js"></script> <input type="button" id="addbtn" value="Add"> <?php include 'includes/head.php'; include 'ven_connect.php'; include "dashboard.php"; if (isset($_GET["page"])) { $page = (int) $_GET["page"]; } else { $page=1; }; $start_from = ($page-1) * 4; $result = mysqli_query($conn , "SELECT * FROM vendor LIMIT $start_from, 4") or die (mysqli_error ($conn)); echo "<table title='Vendors'>"; echo '<tr>'; echo "<th>Sr</th>"; echo "<th>Edit</th>"; echo "<th>Delete</th>"; echo "<th>Name</th>"; echo "<th>PhoneNo</th>"; echo "<th>Email</th>"; echo "</tr>"; echo "<tr>"; while($row = mysqli_fetch_array( $result )) { // display the contents of each row into a table echo "<tr>"; echo '<td>' . $row['id'] . '</td>'; echo '<td>' . '<img src="edit.png" style = "height:35px;margin-left :8px;" onclick = "edit()">' . '</td>'; echo '<td>' . '<img src="delete.png" style = "height:35px;margin-left :8px;" onclick = "deleterecord('.$row['id'].')">' . '</td>'; echo '<td>' . $row['Name'] . '</td>'; echo '<td>' . $row['Number'] . '</td>'; echo '<td>' . $row['email'] . '</td>'; echo "</tr>"; echo '<div id="dialog-confirm" style="display:none;">'; echo'<form method="post" action="edit_ven.php" class="ajax">'; echo'<label for="id">ID</label>'; echo'<input type="text" id="id" name="id" value= '.$row['id'].' readonly> '; echo'<label for="name">Name</label>'; echo'<input type="name" id="name" name="name" value= '.$row['Name'].'>'; echo'<label for="number">Number</label>'; echo'<input type="number" id="number" name="number" value= '.$row['Number'].'>'; echo'<label for="email">Email</label>'; echo'<input type="email" id="email" name = "email" value= '.$row['email'].'>'; echo'</form>'; echo'</div>'; } echo "</tr>"; echo "</table>"; //Pagination!! if($page > 1) { $prev= $page - 1; echo " <a href='{$_SERVER['PHP_SELF']}?page=$prev'>Prev</a> "; } $result = mysqli_query($conn , "SELECT * FROM vendor") or die (mysqli_error ($conn)); $total_records = mysqli_num_rows($result); $total_pages = ceil($total_records / 4); $range = 3; for ($x = ($page - $range); $x <($page + $range); $x++) { if (($x > 0) && ($x <= $total_pages)) { if ($x == $page) { echo " [<b>$x</b>] "; } else { echo " <a href='{$_SERVER['PHP_SELF']}?page=$x'>$x</a> "; } } } if($page != $total_pages) { $nextpage=$page+1; echo " <a href='{$_SERVER['PHP_SELF']}?page=$nextpage'>Next</a> "; } ?> <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> <script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js"></script> <script src="smoke.js"></script> <link rel="stylesheet" href="css/venview.css"> <script type="text/javascript"> function deleterecord ( id ) { smoke.confirm("Do you want to delete?", function(result){ if(result) { window.location.href = 'delete_ven.php?id=' + id; } else{ header("Location: ven_view.php"); }}); } function edit() { $('#dialog-confirm').dialog({ modal: true, width: 400, height: 400, buttons: { update: function() { window.location.href = 'edit_ven.php?id=' + id; }, Cancel: function() { $( this ).dialog( "close" ); } } }); } </script> </body> </html> 。因此,运行大多数网站上的命令:

nvm

没有工作,sudo npm cache clean -f sudo npm install -g n sudo n stable 仍显示旧版本。 我所做的是从nvm安装节点:

node -v

这将在您的计算机上从头开始构建节点,然后nvm install v0.12.6 将显示正确的版本。我想我仍然可以使用node -v然后使用n来使用以前的命令,但这是要测试的东西。如果您安装了nvm use v0.12.6,只需检查nvm的命令以升级节点。

答案 1 :(得分:5)

Answer提供的有关使用 n

Johan Dettmar也适用于此。

对于Windows:以管理员身份打开命令提示符

终端上的Linux/Macsudo -s

  1. npm cache clean -f(强制)清除npm缓存
  2. npm install -g n安装“n”(这可能需要一段时间)
  3. n stable升级到最新版本

答案 2 :(得分:3)

我遇到了同样的问题,需要注意的一件事是确保下载正确的架构版本(例如32位或64位)。升级时,我已经下载了32位版本并没有意识到。但我之前安装的版本是64位。所以我最终安装了32位和64位版本。但是当你去卸载时,它只列出了一个版本的node.js,所以即使在我卸载之后,它也会卸载最新版本,但保留了早期版本。这就是为什么当我做“node -v”时我不断得到旧版本。

一旦我下载了正确的版本(在我的情况下为64位),问题就解决了。

答案 3 :(得分:3)

Windows用户

节点很可能安装在2个位置。

  1. C:\ Program Files \ nodejs
  2. C:\ Program Files(x86)\ nodejs
  3. 将(x86)版本的文件夹重命名为&#34; nodejsOLD&#34;,重新启动命令提示符,然后重试。

    node -v
    

    安装程序工作得很好,你不需要做的事情:

    1. 您无需卸载
    2. 您无需重启
    3. 对于Windows和堆栈溢出节点有一个很好的讨论: How do I update npm on Windows?

答案 4 :(得分:1)

要更新节点,请下载最新的http://nodejs.org/dist/latest/node.exe(或http://nodejs.org/dist/latest/x64/node.exe 64位系统),并用它替换旧的node.exe。

要更新npm,请运行npm update npm -g命令。

答案 5 :(得分:1)

一个可能对其他人有用的技巧,我发现它对于Windows平台很有帮助。 在cmd.exe中输入命令:

where node

这为我输出了node.exe在Chocolatey的子目录中。

问题在于此版本为v8.11.1,并且不适用于较新版本的Angular-CLI。因此,我删除了该exe文件,然后在Node.js网站上运行了LTS版本的Node的安装程序,以获取可用的Node for Angular版本。在Windows 10上进行了测试。

因此,如果您使用的是Windows,请在cmd.exe中测试where命令。 Linuxers和Mac-ers可以使用其他命令,例如哪个命令。

下面的屏幕截图。我在运行node.exe命令之前删除了node.exe文件。

Locating Node executable on the system in Windows

答案 6 :(得分:0)

我遇到了同样的问题-但这是由于我的环境变量中设置的nodejs版本太重复造成的。

您可以使用cmd中的where node在Windows中轻松检查。如果正在输出多个路径,则可能是导致此错误的原因。您可以通过删除其他环境变量来修复它。

答案 7 :(得分:0)

即使听起来可能很愚蠢,也请确保您以前没有安装不再使用的节点版本管理器,例如Nodist。这些将使计算机只能将其内部节点版本作为可用版本,而不能将其手动安装。

如果要手动更新Node / NPM版本,则卸载这些程序包管理器将解决此问题。

答案 8 :(得分:0)

要解决此问题,您可以修改“环境变量”。

  1. 从“系统属性”中打开“环境变量”。
  2. 在系统变量部分选择路径变量并点击编辑按钮。

enter image description here

  1. 在此列表中,您必须拥有已安装 Node.js 的最新文件夹(从列表中删除其他 Node.js 文件夹)。

Updated Node.js folder

就是这样