【问题标题】:npm hangs on any commandnpm 挂在任何命令上
【发布时间】:2015-06-05 23:28:51
【问题描述】:

我安装了最新版本的 Node.js(12.2 x64 窗口) 在我以管理员身份运行cmd 并尝试调用任何npm 命令(npm -v 除外)后,cmd 窗口挂起。在 Ctrl+C 之后它返回

Terminate batch job (Y/N)?

我试图离开 cmd 几个小时,但它没有给出一些结果。 这很奇怪,因为node.exe 进程非常消耗 CPU 和内存。

我曾多次尝试重新安装node.js,但均未成功。
我什至无法获得一些调试信息。

我在通过 rdp 连接使用的虚拟机上遇到了这样的问题。我的笔记本电脑上安装的相同版本可以正常工作。在我的虚拟机上,我安装了卡巴斯基杀毒软件,但在关闭它后,我得到了相同的结果。

有人遇到过这样的问题吗?有什么方法可以获取更多信息问题吗? 你能推荐我一些解决方法吗?

【问题讨论】:

  • 是否有一些 node.js/npm 社区?有人可以帮助我至少找到 node.js/npm 活动的日志文件吗?我可以从任务管理器中看到 node.js 正在积极做某事,但没有写入控制台任何信息。所以我相信它应该在一些日志文件中写入一些调试信息。我写信给npmjs.com/support,但他们根本没有回复我,这很奇怪。我认为 node.js/npm 社区因其受欢迎程度而非常活跃。

标签: windows node.js npm


【解决方案1】:

我终于解决了我的问题。 根据我们本地自述文件的建议

Node.js (with NPM) 注意:在 windows 服务器机器上,节点模块不是安装在用户 %APPDATA% 路径上,而是安装在全局路径上,例如 c:\npm。这可以通过 npm 命令实现: $ npm config set prefix 'c:\npm' 这在个人开发者的机器上不是必需的。

我已经执行了npm config set prefix 'c:\npm'。

结果它在我的 .npmrc 文件中添加了 prefix="'c:\\npm'"

这让 node.js 真的很疯狂。我花了大约一个小时来调试所有这些 js 脚本npm.jscode.js 等...发现它用'c:\\npm'\etc 调用mkdirp 并且它永远循环处理。

【讨论】:

  • 在我的情况下,问题是 NPM_CONFIG_CACHE 已设置并指向不存在的磁盘。
【解决方案2】:

如果以后有人遇到这个问题,你需要找到npmrc文件删除它并删除节点的所有配置,同时删除节点并安装它,这应该可以解决这个问题。 删除节点时,一些配置没有被删除,所以你必须手动删除它。

【讨论】:

  • 为了澄清事情,卸载 nodejs,然后转到 C:\Users\{your user} 并通过 windows 搜索搜索 NPM。然后删除您找到的所有内容。理解为什么它一直在结冰,真是让人头疼。
【解决方案3】:

这也发生在我身上:我在 Windows 10 上仅为我的用户安装了节点,并通过使用完整路径 "c:\Program Files\nodejs\npm" 调用它来设法使用 npm

我通过使用"c:\Program Files\nodejs\npm" config set prefix "c:\Program Files\nodejs" 解决了(将前缀设置为 npm 的完整路径)

结果是:

    λ cat c:\Users\<my_user_name>\.npmrc
    prefix=c:\Program Files\nodejs

现在一切正常。

【讨论】:

  • 如果你甚至不能让它运行config set prefix,只需编辑你的 %USERPROFILE%/.npmrc 文件。
【解决方案4】:

如果前缀设置不正确。

只是想指出那些评论-如果您无法访问命令行 npm,那么您显然无法运行npm config。

打开powershell并输入notepad $HOME/.npmrc,然后编辑prefix=...所在的行并将其更改为有效的行。

【讨论】:

    【解决方案5】:

    为清楚起见,当您调用时:

    npm config set prefix 'c:\npm'
    

    你需要有 ' 包裹路径,但你需要从 .npmrc 文件中删除它们,这样 npm 命令才能工作。因此,您在 .npmrc 文件中生成的行应如下所示:

    prefix="c:\\npm"
    

    【讨论】:

      【解决方案6】:

      只需删除 User/%UserProfile% 处的 .nprmc 文件,现在尝试该命令,如果它可以工作,甚至重新安装一次。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-09-21
        • 2018-10-06
        • 2012-08-27
        • 2019-04-15
        • 2012-03-06
        • 1970-01-01
        • 2022-10-31
        • 2019-10-04
        相关资源
        最近更新 更多