在Windows 10上安装Node.js(和npm)


69

我在尝试在Windows 10上安装Node时遇到了一些问题,并找到了解决方案。

错误如下:

C:\ Users \ Stephan> npm
错误:ENOENT,状态为“ C:\ Users \ Stephan \ AppData \ Roaming \ npm”

解决方案如下。

Answers:


131

编辑: 似乎新的安装程序不再有此问题,请参阅Parag Meshram的答案,因为我的答案现在可能已过时。

原始答案:

请严格按照以下步骤操作:

  • http://nodejs.org/download/下载64位版本,32位适用于赶时髦的人
  • 默认情况下,将其安装在所需的任何位置: C:\Program Files\nodejs
  • 控制面板->系统->高级系统设置->环境变量
  • 选择PATH并选择对其进行编辑。

如果PATH变量是empty,请将其更改为:C:\Users\{YOUR USERNAME HERE}\AppData\Roaming\npm;C:\Program Files\nodejs

如果PATH变量已经包含C:\Users\{YOUR USERNAME HERE}\AppData\Roaming\npm,则在后面添加以下内容:;C:\Program Files\nodejs

如果PATH变量包含信息,但不包含有关npm的信息,请将其附加到PATH的末尾: ;C:\Users\{YOUR USERNAME HERE}\AppData\Roaming\npm;C:\Program Files\nodejs

现在PATH变量已正确设置,您仍然会遇到错误。手动进入AppData目录,您会发现漫游中没有npm目录。手动创建此目录。

重新启动命令提示符,npm现在可以工作了。


2
到目前为止,@ captainrad我还没有遇到任何麻烦,但是我不确定在12月7日之前发布
Stephan Bijzitter

1
@captainrad当我在Windows 10
上将

1
@DannyG感谢您的编辑,但请仅在改善答案时进行编辑。有关此主题的更多信息,请参考stackoverflow.com/help/editing
Stephan Bijzitter

4
提防,Stephan,最近的编辑/回滚引发了一次(不错的)Meta对话,值得您花点时间看一下。这可能会为您提供更多有关DannyG为什么编辑您的答案的背景信息。
肯德拉

3
“ ...是
赶时髦的人

64

转到http://nodejs.org/

并点击“下载为...”按钮

这将下载.msi(对于Mac,则为.pkg),它将为您完成所有安装和路径,与所选答案不同。


1
介意解释为什么接受的答案对您不起作用?
Stephan Bijzitter,2015年

11
接受的答案要求我手动输入运行安装程序(.msi)时不需要的路径。
Shai UI

2
然后要么安装程序已更新为在过去几周内自动执行此操作,要么您只是在系统上很幸运:-)但是,我对此表示怀疑。
Stephan Bijzitter,2015年

3
这是正确的答案。如果您在Windows上,则默认安装有效(.msi)...感谢@foreyez
Scott Stensland 2015年

1
这应该被标记为正确答案,因为它只是一步解决方案,而不是@StephanBijzitter解决方案,它要求我首先浏览其下载目录以搜索我不知道的正确版本(不熟悉nodejs)。
shivgre

15

除了@StephanBijzitter的答案外,我还可以使用以下PATH变量:

%appdata%\npm
%ProgramFiles%\nodejs

因此,您的新产品PATH看起来像:

[existing stuff];%appdata%\npm;%ProgramFiles%\nodejs

这样做的好处是neiter取决于用户或32/64位。


如果您将其安装在默认位置,这很好,但是请记住,如果没有安装,这只会使PATH变量混乱。
戴夫·莫顿

10

新安装程序(从https://nodejs.org下载的.msi )具有“添加到PATH”选项。默认情况下,它是选中的。确保您保持选中状态。

添加到PATH


1
好吧:-)
Stephan Bijzitter

奇怪,我使用了此安装程序,因此肯定对其进行了检查。我仍然必须在路径变量中添加nodejs文件夹
DerpyNerd

3

一切都应安装在%appdata%(C:\ Users \\ AppData \ Roaming)中,而不是“程序文件”中。

这就是为什么

默认的MSI安装程序将Node及其随附的NPM放入“程序文件”中,并将其添加到系统路径中,但是它将NPM的用户路径设置为%appdata%(c:\ users [用户名] \ appdata \ roaming ),因为用户没有足够的权限来写入“程序文件”。

当所有模块都放入%appdata%中时,这会造成混乱,并且当您升级NPM本身时-NPM本身建议您立即进行-最终会得到两个副本:原始副本仍在“程序文件”中,因为NPM无法擦除以及新的一间客栈%appdata%。

更糟糕的是,如果您错误地以admin身份执行NPM操作(在Windows上然后在* nix上容易得多),它将在NPM node_modules的“程序文件”副本上运行。可能真是一团糟。

因此,当您运行安装程序时,只需将其指向%appdata%,并避免所有这些操作。

并请注意,这没什么麻烦的-如果仅使用用户特权运行安装程序,就会发生这种情况。


2

您应该以管理员身份运行安装程序。

  1. 以管理员身份运行命令提示符
  2. 存在msi文件的cd目录
  3. 通过在命令提示符下键入名称来启动msi文件
  4. 您应该很高兴看到所有节点命令在新的命令提示符外壳中均有效


1

您必须修改AppData的原因可能是:

  1. Node.js不能处理的路径长度不能超过256个字符,Windows的PATH往往很长。
  2. 如果您是从公司环境登录的,则您的AppData可能在服务器上-无法使用。npm目录必须位于本地驱动器中。

即使这样做,最新的LTE(4.4.4)仍然在Windows 10上存在问题,每当我尝试执行以下操作时,它就会工作一会儿:

$ npm install _some_package_ --global 

节点抛出“致命错误CALL_AND_RETRY_LAST分配失败-进程内存不足”错误。仍然尝试找到该问题的解决方案。

我发现唯一可行的方法是运行Vagrant或Virtual box,然后运行Linux命令行(必须与路径匹配),这是一个非常麻烦的解决方案。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.