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

我有一些问题试图在Windows 10上安装Node,并find了解决scheme。

错误如下:

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

解决scheme如下。

编辑:这似乎是新的安装程序不再有这个问题了,看到这个答案由Parag Meshram作为我的答案可能已经过时了。

原始答案:

请严格遵循以下步骤:

如果PATHvariables为empty ,则将其更改为: C:\Users\{YOUR USERNAME HERE}\AppData\Roaming\npm;C:\Program Files\nodejs

如果PATHvariables已经包含C:\Users\{YOUR USERNAME HERE}\AppData\Roaming\npm ,那么在;C:\Program Files\nodejs

如果PATHvariables包含信息,但没有任何关于npm的信息,请将其附加到PATH ;C:\Users\{YOUR USERNAME HERE}\AppData\Roaming\npm;C:\Program Files\nodejs

现在,PATHvariables设置正确,你仍然会遇到错误。 手动进入AppData目录,你会发现在漫游里面没有npm目录。 手动创build这个目录。

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

http://nodejs.org/

并点击“下载为…”button

这将下载的.msi将为您做所有的安装和path(不同于select的答案)

除了@StephanBijzitter的回答,我会使用下面的PATHvariables:

 %appdata%\npm %ProgramFiles%\nodejs 

所以你的新PATH将如下所示:

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

这具有neiter依赖于用户的优点,也不依赖于32/64位。

新的安装程序(从https://nodejs.org下载的;.msi)具有“添加到path”选项。 默认情况下,它被选中。 确保你不会取消选中它。

添加到PATH

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

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

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

  1. Node.js无法处理超过256个字符的path,Windows往往会有很长的PATH。
  2. 如果您是从公司环境login的,那么您的AppData可能在服务器上 – 这是行不通的。 npm目录必须位于本地驱动器中。

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

 $ npm install _some_package_ --global 

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

我find的唯一工作是运行Vagrant或Virtual box,然后运行Linux命令行(必须匹配path),这是一个相当混乱的解决scheme。

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

这是为什么…

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

当所有模块进入%appdata%时,这会造成一团糟,当你升级NPM本身 – 哪一个NPM自己build议你马上做 – 你最终得到两个副本:由于NPM无法擦除,原来仍然在“程序文件”那,和新店%appdata%。

更糟的是,如果你错误地以pipe理员的身份执行NPM操作(在Windows上更容易,然后在* nix上),那么它将在NPM node_modules的“程序文件”副本上运行。 可能是一个真正的混乱。

所以,当你运行安装程序时,只需将它指向%appdata%并避免这一切。

请注意,这不是什么奇怪的事情 – 如果你只用用户权限运行安装程序就会发生什么情况。