我正在尝试更新Windows 7机器上的节点,但是在重新安装/更新节点后我没有看到最新版本。
我只是前往http://nodejs.org/download/并获取最新的Windows安装程序 v0.10.28 。然后我运行该安装程序,默认安装在本地硬盘上的所有内容,包括npm,这很酷,因为我也想升级它。
安装运行/完成没有明显问题,但是当我执行:
node --version
我仍然看到我的“旧”版本 v0.10.15 ,而不是我原本应该安装的最新版本,v0.10.28。我的npm版本仍然会报告我的“旧”版本。
我也试过重启。
如何更新节点/ npm?
答案 0 :(得分:14)
我有一个类似的问题,但在MacOS上,原因是我安装了<!doctype HTML>
<head>
<link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/themes/smoothness/jquery-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)
Johan Dettmar也适用于此。
对于Windows
:以管理员身份打开命令提示符
终端上的Linux/Mac
:sudo -s
npm cache clean -f
(强制)清除npm缓存npm install -g n
安装“n”(这可能需要一段时间)n stable
升级到最新版本答案 2 :(得分:3)
我遇到了同样的问题,需要注意的一件事是确保下载正确的架构版本(例如32位或64位)。升级时,我已经下载了32位版本并没有意识到。但我之前安装的版本是64位。所以我最终安装了32位和64位版本。但是当你去卸载时,它只列出了一个版本的node.js,所以即使在我卸载之后,它也会卸载最新版本,但保留了早期版本。这就是为什么当我做“node -v”时我不断得到旧版本。
一旦我下载了正确的版本(在我的情况下为64位),问题就解决了。
答案 3 :(得分:3)
Windows用户
节点很可能安装在2个位置。
将(x86)版本的文件夹重命名为&#34; nodejsOLD&#34;,重新启动命令提示符,然后重试。
node -v
安装程序工作得很好,你不需要做的事情:
对于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文件。
答案 6 :(得分:0)
我遇到了同样的问题-但这是由于我的环境变量中设置的nodejs版本太重复造成的。
您可以使用cmd中的where node
在Windows中轻松检查。如果正在输出多个路径,则可能是导致此错误的原因。您可以通过删除其他环境变量来修复它。
答案 7 :(得分:0)
即使听起来可能很愚蠢,也请确保您以前没有安装不再使用的节点版本管理器,例如Nodist。这些将使计算机只能将其内部节点版本作为可用版本,而不能将其手动安装。
如果要手动更新Node / NPM版本,则卸载这些程序包管理器将解决此问题。
答案 8 :(得分:0)