在Windows 10上安装Node.js(和npm)
我有一些问题试图在Windows 10上安装Node,并find了解决scheme。
错误如下:
C:\用户\斯蒂芬> NPM
错误:ENOENT,stat'C:\ Users \ Stephan \ AppData \ Roaming \ npm'
解决scheme如下。
编辑:这似乎是新的安装程序不再有这个问题了,看到这个答案由Parag Meshram作为我的答案可能已经过时了。
原始答案:
请严格遵循以下步骤:
- http://nodejs.org/download/下载64位版本,32是为赶时髦的人;
- 安装在你想要的任何地方,默认是:
C:\Program Files\nodejs
- 控制面板 – >系统 – >高级系统设置 – >环境variables
- select
PATH
并select编辑它。
如果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将工作。
除了@StephanBijzitter的回答,我会使用下面的PATH
variables:
%appdata%\npm %ProgramFiles%\nodejs
所以你的新PATH
将如下所示:
[existing stuff];%appdata%\npm;%ProgramFiles%\nodejs
这具有neiter依赖于用户的优点,也不依赖于32/64位。
新的安装程序(从https://nodejs.org下载的;.msi)具有“添加到path”选项。 默认情况下,它被选中。 确保你不会取消选中它。
您应该以pipe理员身份运行安装程序。
- 以pipe理员身份运行命令提示符
- cd目录msi文件存在
- 通过在命令提示符下键入名称启动msi文件
- 您应该很高兴看到所有节点命令都可以从新的命令提示符shell中运行
你必须修改AppData的原因可能是:
- Node.js无法处理超过256个字符的path,Windows往往会有很长的PATH。
- 如果您是从公司环境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%并避免这一切。
请注意,这不是什么奇怪的事情 – 如果你只用用户权限运行安装程序就会发生什么情况。