npm“错误网络getaddrinfo ENOTFOUND”

9

我正在尝试通过npm安装不同的模块。

c:\>npm install -g express

但我收到了以下错误信息:
0 info it worked if it ends with ok
1 verbose cli [ 'D:\\FH Kiel\\WS 13\\Advanced Javascript\\nodejs\\\\node.exe',
1 verbose cli   'D:\\FH Kiel\\WS 13\\Advanced Javascript\\nodejs\\node_modules\\npm\\bin\\npm-cli.js',
1 verbose cli   'install',
1 verbose cli   'express' ]
2 info using npm@1.3.14
3 info using node@v0.10.22
4 verbose node symlink D:\FH Kiel\WS 13\Advanced Javascript\nodejs\\node.exe
5 verbose cache add [ 'express', null ]
6 verbose cache add name=undefined spec="express" args=["express",null]
7 verbose parsed url { protocol: null,
7 verbose parsed url   slashes: null,
7 verbose parsed url   auth: null,
7 verbose parsed url   host: null,
7 verbose parsed url   port: null,
7 verbose parsed url   hostname: null,
7 verbose parsed url   hash: null,
7 verbose parsed url   search: null,
7 verbose parsed url   query: null,
7 verbose parsed url   pathname: 'express',
7 verbose parsed url   path: 'express',
7 verbose parsed url   href: 'express' }
8 silly lockFile f3c62de4-express express
9 verbose lock express C:\Users\MW\AppData\Roaming\npm-cache\f3c62de4-express.lock
10 silly lockFile f3c62de4-express express
11 silly lockFile f3c62de4-express express
12 verbose addNamed [ 'express', '' ]
13 verbose addNamed [ null, '*' ]
14 silly lockFile 64a534c1-express express@
15 verbose lock express@ C:\Users\MW\AppData\Roaming\npm-cache\64a534c1-express.lock
16 silly addNameRange { name: 'express', range: '*', hasData: false }
17 verbose url raw express
18 verbose url resolving [ 'http://registry.npmjs.org/', './express' ]
19 verbose url resolved http://registry.npmjs.org/express
20 info trying registry request attempt 1 at 15:47:46
21 http GET http://registry.npmjs.org/express
22 info retry will retry, error on last attempt: Error: getaddrinfo ENOTFOUND
23 info trying registry request attempt 2 at 15:47:59
24 http GET http://registry.npmjs.org/express
25 info retry will retry, error on last attempt: Error: getaddrinfo ENOTFOUND
26 info trying registry request attempt 3 at 15:49:01
27 http GET http://registry.npmjs.org/express
28 silly lockFile 64a534c1-express express@
29 silly lockFile 64a534c1-express express@
30 error network getaddrinfo ENOTFOUND
30 error network This is most likely not a problem with npm itself
30 error network and is related to network connectivity.
30 error network In most cases you are behind a proxy or have bad network settings.
30 error network
30 error network If you are behind a proxy, please make sure that the
30 error network 'proxy' config is set properly.  See: 'npm help config'
31 error System Windows_NT 6.1.7601
32 error command "D:\\FH Kiel\\WS 13\\Advanced Javascript\\nodejs\\\\node.exe" "D:\\FH Kiel\\WS 13\\Advanced Javascript\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "install" "express"
33 error cwd D:\nodejs
34 error node -v v0.10.22
35 error npm -v 1.3.14
36 error syscall getaddrinfo
37 error code ENOTFOUND
38 error errno ENOTFOUND
39 verbose exit [ 1, true ]

我尝试了以下解决方案:
npm config set proxy http://usr:pwd@proxyname:port

npm config set https-proxy http://usr:pwd@proxyname:port

npm config set registry http://registry.npmjs.org/

我已经禁用了防火墙并尝试了许多方法,但是仍然无法解决问题。由于在其他电脑上工作正常,因此不存在代理设置的问题。我已经成功安装了node.js。
谢谢。
更新:这是Windows主机文件:
#
# For example:
#
#      102.54.94.97     rhino.acme.com          # source server
#       38.25.63.10     x.acme.com              # x client host

# localhost name resolution is handled within DNS itself.
#   127.0.0.1       localhost
#   ::1             localhost


127.0.0.1       localhost
127.0.0.1       localhost
127.0.0.1       localhost

我也尝试了在其他帖子中找到的这个解决方案:

npm install <packagename> --registry http://registry.npmjs.org/

也不起作用 :(

我没有读完整篇文章- 抱歉! - ali haider
你可以尝试从一台正常工作的电脑上复制 node_modules 文件夹,看看是否能解决问题 - 只是好奇。 - ali haider
5
我认为盗版的Adobe软件证据特别经典。+1 - Mulan
我不认为这是代理问题,因为我在大学里,其他学生也可以使用它... - Alok Pant
@user568109 除了安装之外,一切都正常。我甚至在我的一个朋友的笔记本电脑上进行了安装,同样的事情也起作用了。这很奇怪。Phonegap 的人没有提供支持... 我已经给他们发了电子邮件... - Alok Pant
显示剩余11条评论
6个回答

16

我没有找到任何解决方法,但最终我不得不重新安装了Windows。现在它可以工作了...


npm config delete proxy 对我来说起作用了。 - MNG MAN

1
请移除npm配置文件中设置的任何代理。
在命令提示符中,键入"npm config edit"。
这将在您的文本编辑器中打开".npmrc"配置文件。
在该文件中,找到代理设置。如果有任何未经您配置的设置(例如"http://proxyurl/:port"),请删除这些设置,保存文件,并从那里开始。这通常可以解决此问题。

0

我也有全局代理。在你的电脑上找到那个路径。

C:\Users\(Your Username)\AppData\Roaming\npm\etc\



find that file > npmignore 
(edit with text editor and than remove proxy lines.)

之后

npm install

就这样了...祝你好运!


0
在我的情况下,问题是设置https代理,但找不到方法来做。最后我尝试在命令提示符中输入以下内容,
npm config edit

它打开了.npmrc文件,并使用分号注释的默认选项列表。只需要在https-proxy之前删除冒号,输入公司提供给我的代理地址,然后在编辑器中保存即可。

希望能对您有所帮助。


0
在我的情况下,我没有使用代理,但是这个错误发生了。
当我尝试在浏览器中访问registry.npmjs.org时,它没有显示错误。
编辑npm配置对我没有帮助,但是...
traceroute registry.npmjs.org 

修复我的问题


-2

答案非常简单。

步骤1:npm config edit。将弹出一个txt文件

步骤2:将默认的npm注册表设置为https://registry.npmjs.org


1
欢迎来到SO。首先,旧答案已经提供了类似的建议。其次,OP提到他们在安装包时尝试显式设置注册表,但未成功。下次请仔细检查现有答案,并在现有答案中缺少相关信息或您拥有其他未被任何其他答案提及的方法时添加您的答案。 - Abrar Hossain

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接