NPM 已停止在 Windows 7 64 位上工作,在 install/update 上挂起
NPM has stopped working on Windows 7 64bit, hangs on install/update
在某些时候,我的 NPM 版本停止工作。几周前我尝试更新 npm(从 1.4 版 node 到现代 2.x 版本)时似乎发生了这种情况,并且情况越来越糟。我不得不更改环境变量以指向我的节点目录之前的 npm 目录(以获取新版本的 npm),此时一切都停止工作。我将环境变量切换回来,然后更新就会挂起。但奇怪的是,当我尝试调试它并在命令中添加 --verbose 时,更新在大多数情况下都能正常工作。有时他们挂在
npm http GET https://registry.npmjs.org/PACKAGE_NAME
但大部分时间他们都在工作。现在,旧版本的 NPM (1.4.1) 和我安装的新版本 (2.1.17) 都会发生这种情况,GET 命令总是失败(通常但不总是第一个)。我点击了清除缓存,清除了临时目录,尝试清除 %APPDATA/roaming/npm/,然后重新安装所有内容。我没有代理,但我有 运行:
npm config set proxy
将代理设置为空白。我已将注册表设置为 http(而不是 https)并将 strict-ssl 设置为 false。我已经卸载并重新安装了 nodejs,但没有运气。我已经尝试 运行 从管理员 cmd 提示符而不是普通命令提示符执行命令,但都无济于事。我 运行 没有想法,真的需要 NPM 才能工作...
以下是清除 %APPDATA/roaming/npm 目录后尝试安装 g运行t-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-cache1ef8ac-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 分钟并且什么也没发生)。
看起来您可能已经安装了一个新的 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 either here or as a new issue at https://github.com/npm/npm/issues,我们会帮助您解决这个问题。
您使用的版本号不符合 semantic versionning 约定 npm
使用:您需要指定 MAJOR.MINOR.PATCH
版本号。
您可以:
- 使用
0.2.x
表示法指定你不关心你使用的补丁版本,只要major.minor匹配
- 使用
~0.2.0
表示法指定你不关心你使用的补丁版本,只要major.minor匹配
-
阅读 npm's documentation and semver's documentation 了解其他可能性...
希望这对您有所帮助。
我是 运行 windows 8.1 中的节点。这个问题在一台新机器上突然出现,我搜索了几个小时没有成功。最后。无奈之下,我使用 fiddler 试图查看 npm 进行了哪些调用,问题神奇地消失了。
经过进一步调查,我发现 npm 似乎需要设置两个 windows 环境变量:
在 运行 npm 之前在命令提示符中尝试以下操作(注意:如果您实际上在代理后面,请将空引号替换为您的代理地址):
Setx http_proxy ""
Setx https_proxy ""
在某些时候,我的 NPM 版本停止工作。几周前我尝试更新 npm(从 1.4 版 node 到现代 2.x 版本)时似乎发生了这种情况,并且情况越来越糟。我不得不更改环境变量以指向我的节点目录之前的 npm 目录(以获取新版本的 npm),此时一切都停止工作。我将环境变量切换回来,然后更新就会挂起。但奇怪的是,当我尝试调试它并在命令中添加 --verbose 时,更新在大多数情况下都能正常工作。有时他们挂在
npm http GET https://registry.npmjs.org/PACKAGE_NAME
但大部分时间他们都在工作。现在,旧版本的 NPM (1.4.1) 和我安装的新版本 (2.1.17) 都会发生这种情况,GET 命令总是失败(通常但不总是第一个)。我点击了清除缓存,清除了临时目录,尝试清除 %APPDATA/roaming/npm/,然后重新安装所有内容。我没有代理,但我有 运行:
npm config set proxy
将代理设置为空白。我已将注册表设置为 http(而不是 https)并将 strict-ssl 设置为 false。我已经卸载并重新安装了 nodejs,但没有运气。我已经尝试 运行 从管理员 cmd 提示符而不是普通命令提示符执行命令,但都无济于事。我 运行 没有想法,真的需要 NPM 才能工作...
以下是清除 %APPDATA/roaming/npm 目录后尝试安装 g运行t-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-cache1ef8ac-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 分钟并且什么也没发生)。
看起来您可能已经安装了一个新的 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 either here or as a new issue at https://github.com/npm/npm/issues,我们会帮助您解决这个问题。
您使用的版本号不符合 semantic versionning 约定 npm
使用:您需要指定 MAJOR.MINOR.PATCH
版本号。
您可以:
- 使用
0.2.x
表示法指定你不关心你使用的补丁版本,只要major.minor匹配 - 使用
~0.2.0
表示法指定你不关心你使用的补丁版本,只要major.minor匹配 - 阅读 npm's documentation and semver's documentation 了解其他可能性...
希望这对您有所帮助。
我是 运行 windows 8.1 中的节点。这个问题在一台新机器上突然出现,我搜索了几个小时没有成功。最后。无奈之下,我使用 fiddler 试图查看 npm 进行了哪些调用,问题神奇地消失了。
经过进一步调查,我发现 npm 似乎需要设置两个 windows 环境变量:
在 运行 npm 之前在命令提示符中尝试以下操作(注意:如果您实际上在代理后面,请将空引号替换为您的代理地址):
Setx http_proxy ""
Setx https_proxy ""