NPM已停止在Windows 7 64位上运行,在安装/更新时挂起

时间:2015-01-25 21:50:24

标签: windows node.js npm

在某些时候,我的NPM版本停止了工作。这似乎发生在我几周前尝试更新npm(从1.4运输节点到现代2.x版本)并且稳步变得更糟。我必须在我的节点目录之前更改环境变量以指向我的npm目录(以获取新版本的npm),此时所有内容都停止工作。我重新切换了环境变量,然后更新就会挂起。但奇怪的是,当我尝试调试它并在命令中添加--verbose时,更新将在大多数情况下工作。有时他们挂在

npm http GET https://registry.npmjs.org/PACKAGE_NAME

但他们大多数时间都在工作。现在这发生在旧版本的NPM(1.4.1)和我安装的新版本(2.1.17)中,一切都在GET命令上失败(通常但不总是第一个)。我已经点击缓存清除,我已经删除了临时目录,我已经尝试消除%APPDATA /漫游/ npm /,并重新安装所有内容。我没有代理,但我已经跑了:

 npm config set proxy

将代理设置为空白。我已将注册表设置为http(而不是https)并将strict-ssl设置为false。我已经卸载并重新安装了nodejs,没有运气。我试过从admin cmd提示符而不是正常的命令提示符运行命令都无济于事。我的想法已经用完了,真的需要NPM来工作......

以下是清除%APPDATA / roaming / npm目录后尝试安装grunt-cli的输出:

C:\Users\Kris Erickson>npm install -g grunt-cli --verbose
npm info it worked if it ends with ok
npm verb cli [ 'C:\\Program Files\\nodejs\\\\node.exe',
npm verb cli   'C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js',
npm verb cli   'install',
npm verb cli   '-g',
npm verb cli   'grunt-cli',
npm verb cli   '--verbose' ]
npm info using npm@1.4.28
npm info using node@v0.10.35
npm verb node symlink C:\Program Files\nodejs\\node.exe
npm verb cache add [ 'grunt-cli', null ]
npm verb cache add name=undefined spec="grunt-cli" args=["grunt-cli",null]
npm verb parsed url { protocol: null,
npm verb parsed url   slashes: null,
npm verb parsed url   auth: null,
npm verb parsed url   host: null,
npm verb parsed url   port: null,
npm verb parsed url   hostname: null,
npm verb parsed url   hash: null,
npm verb parsed url   search: null,
npm verb parsed url   query: null,
npm verb parsed url   pathname: 'grunt-cli',
npm verb parsed url   path: 'grunt-cli',
npm verb parsed url   href: 'grunt-cli' }
npm verb lock grunt-cli C:\Users\Kris Erickson\AppData\Roaming\npm-cache\671ef8ac-grunt-cli.lock
npm verb addNamed [ 'grunt-cli', '' ]
npm verb addNamed [ null, '*' ]
npm verb lock grunt-cli@ C:\Users\Kris Erickson\AppData\Roaming\npm-cache\d63f3d0b-grunt-cli.lock
npm verb request where is /grunt-cli
npm verb request registry https://registry.npmjs.org/
npm verb request id dc44ca4b260df8c3
npm verb url raw /grunt-cli
npm verb url resolving [ 'https://registry.npmjs.org/', './grunt-cli' ]
npm verb url resolved https://registry.npmjs.org/grunt-cli
npm verb request where is https://registry.npmjs.org/grunt-cli
npm info trying registry request attempt 1 at 13:36:28
npm http GET https://registry.npmjs.org/grunt-cli
/

注意:旋转器永远不会停止(至少我已经离开了10分钟,没有发生任何事情)。

3 个答案:

答案 0 :(得分:1)

看起来您可能已经安装了新的npm但实际上并没有使用它(或者您是否还原为1.4.28?)

在任何一种情况下,请尝试按照https://github.com/npm/npm/wiki/Troubleshooting#upgrading-on-windows中的说明更新到Windows上的最新npm。最新的是目前2.4.1。我建议使用选项3。

然后尝试以最大的详细程度运行npm install命令:

npm -ddd install -g grunt-cli

并将您的日志文件作为要点https://gist.github.com上传到https://github.com/npm/npm/issues,或者作为{{3}}的新问题上传,我们将帮助您解决此问题。

答案 1 :(得分:0)

您使用的版本号不符合semantic versionning约定npm使用:您需要指定MAJOR.MINOR.PATCH版本号。

你可以:

  1. 使用0.2.x表示法指定您不关心您使用的修补程序版本,只要major.minor匹配
  2. 使用~0.2.0表示法指定您不关心您使用的修补程序版本,只要major.minor匹配
  3. 阅读npm's documentationsemver's documentation了解其他可能性......
  4. 希望这有帮助。

答案 2 :(得分:0)

我在Windows 8.1中运行节点。这个问题出现在一个新的机器构建上,我搜索了几个小时的分辨率但没有成功。最后。在绝望中,我使用小提琴手试图看到npm正在进行的调用,并且神奇地问题消失了。

在进一步调查中,我发现npm似乎需要设置两个windows环境变量:

在运行npm之前在命令提示符中尝试以下操作(注意:如果您实际上在代理后面,则用代理地址替换空引号):

Setx http_proxy ""
Setx https_proxy ""