我在尝试在Windows 10上安装Node时遇到了一些问题,并找到了解决方案。
错误如下:
C:\ Users \ Stephan> npm
错误:ENOENT,状态为“ C:\ Users \ Stephan \ AppData \ Roaming \ npm”
解决方案如下。
Answers:
编辑: 似乎新的安装程序不再有此问题,请参阅Parag Meshram的答案,因为我的答案现在可能已过时。
原始答案:
请严格按照以下步骤操作:
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现在可以工作了。
新安装程序(从https://nodejs.org下载的.msi )具有“添加到PATH”选项。默认情况下,它是选中的。确保您保持选中状态。
一切都应安装在%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%,并避免所有这些操作。
并请注意,这没什么麻烦的-如果仅使用用户特权运行安装程序,就会发生这种情况。
我遇到了同样的问题,这是什么帮助我们在安装节点时将防病毒保护打开了大约10分钟,而它的运行就像一个魅力。
您必须修改AppData的原因可能是:
即使这样做,最新的LTE(4.4.4)仍然在Windows 10上存在问题,每当我尝试执行以下操作时,它就会工作一会儿:
$ npm install _some_package_ --global
节点抛出“致命错误CALL_AND_RETRY_LAST分配失败-进程内存不足”错误。仍然尝试找到该问题的解决方案。
我发现唯一可行的方法是运行Vagrant或Virtual box,然后运行Linux命令行(必须与路径匹配),这是一个非常麻烦的解决方案。