76

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

错误如下:

C: \用户\ Stephan>npm
错误:ENOENT,stat'C:\Users\Stephan\AppData\Roaming\npm'

解决方案如下。

10个答案10

重置为默认值
145

编辑:新安装程序似乎不再存在此问题,请参阅这个答案通过帕拉格·梅什拉姆因为我的答案现在可能已经过时了。

原始答案:

请严格遵循以下步骤:

  • http://nodejs.org/download/下载64位版本,32位适用于时尚人士
  • 默认情况下,可以将其安装到任何位置:C: \程序文件\节点
  • 控制面板->系统->高级系统设置->环境变量
  • 选择路径并选择编辑它。

如果PATH变量为空的,将其更改为:C: \Users\{此处显示您的用户名}\AppData\Roaming\npm;C: \Program Files\nodejs程序文件

如果PATH变量已经包含C: \Users\{此处显示您的用户名}\AppData\Roaming\npm,在后面追加以下内容:;C: \程序文件\节点

如果PATH变量包含信息,但不包含有关npm的任何信息,请将其附加到PATH的末尾:;C: \Users\{此处显示您的用户名}\AppData\Roaming\npm;C: \程序文件\节点

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

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

7
  • 2
    @队长到目前为止我没有遇到任何麻烦,但我不能确定是否能在12月7日前释放 评论 2015年3月26日8:23
  • 1
    @当我在Windows 10上将C:\Program files\nodejs中的文件复制到C:\Users\{YOUR USERNAME HERE}\AppData\Roaming\npm时,它起到了作用 评论 2015年3月28日14:19
  • 1
    @DannyG感谢您的编辑,但请仅在改进答案后进行编辑。请参阅stackoverflow.com/help/editing(stackovervlow.com/帮助/编辑)有关此主题的更多信息。 评论 2015年11月18日21:57
  • 4
    Stephan,正值醒目之际,最近的编辑/回滚引发了一场(不错)元对话它可能值得你花时间去看。它可能会给你更多的背景,让你了解为什么DannyG编辑了你的答案。
    – 肯德拉
    评论 2015年11月19日16:57
  • “……专为时尚人士设计”;-) 评论 2016年8月12日10:14
68

http://nodejs.org/

点击“下载…”按钮

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

8
  • 1
    介意解释一下为什么接受的答案对你不起作用吗? 评论 2015年10月4日11:51
  • 11
    接受的答案要求我手动输入路径,如果您运行安装程序(.msi),则不需要这些路径。 评论 2015年10月4日14:42
  • 然后,要么安装程序在过去几周内被更新为自动执行此操作,要么您只是幸运地使用了您的系统:-)然而,我对此表示怀疑。 评论 2015年10月5日6:53
  • 这是正确的答案。如果您在Windows上,默认安装工作(.msi)。。。谢谢@foreyez 评论 2015年10月14日3:40
  • 1
    这应该标记为正确答案,因为它只是一步解决方案,而不是@StephanBijzitter解决方案,它要求我首先浏览他们的下载目录,搜索我不知道的正确版本(不熟悉nodej)。 评论 2018年1月19日2:19
15

除了@Stephan Bijzitter的答案外,我还将使用以下内容路径变量:

%应用数据%\npm%程序文件%\nodejs

所以你的新路径看起来像:

[现有材料];%appdata%\npm;%程序文件%\nodejs

这有一个优点,即不依赖于用户,也不依赖于32/64位。

1
  • 如果您已将其安装在默认位置,这将非常好,但请记住,如果您没有安装,这只会使PATH变量变得混乱。 评论 2016年8月27日10:37
12

新安装程序(.msi下载自https://nodejs.org)具有“添加到路径”选项。默认情况下,它处于选中状态。一定要让它保持选中状态。

添加到PATH

2

所有内容都应安装在%appdata%(C:\Users\\appdata\Roaming)中,而不是“程序文件”中。

这就是为什么。。。

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

当所有模块都进入%appdata%时,这会造成混乱,当你升级NPM本身时——NPM自己建议你立即升级——你最终会得到两个副本:原始副本仍在“程序文件”中,因为NPM无法擦除它,而新副本在%appdata%中。

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

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

请注意,这并不是胡扯,而是如果您只使用用户权限运行安装程序会发生的情况。

2

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

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

我也遇到了同样的问题,帮助我们的是在安装node时将我的防病毒保护功能关闭了大约10分钟,它运行得很好。

1

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

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

即使这样,最新的LTE(4.4.4)在Windows 10上仍然存在问题,它工作了一段时间,然后每当我尝试:

$npm install_some_package_--全局

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

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

1

对我来说,我必须删除\program files中的nodejs文件夹,然后当我通过msi进行安装时,它起作用了。看起来好像我卸载Node时它并没有删除这个文件

0

我也遇到了同样的问题,但在尝试了这篇文章的所有操作都失败后,我不得不重新开始。因此,如果您在安装后没有尝试重新启动计算机,请尝试一下。

安装后重新启动计算机

您的答案

单击“发布您的答案”,表示您同意我们的服务条款并确认您已阅读我们的隐私政策.

不是你想要的答案吗?浏览标记的其他问题问你自己的问题.