【发布时间】:2015-07-05 14:08:09
【问题描述】:
在某些时候,我的 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 目录后尝试安装 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 分钟,但什么也没发生)。
【问题讨论】:
-
FWIW 您可以通过执行
npm config set spin false和npm config set loglevel http来禁用微调器并重新启用输出。现在我总是在安装节点后这样做,因为它可以帮助解决此类问题,并且您可以判断是否确实发生了某些事情。