【问题标题】:ENOTFOUND when running npm install运行 npm install 时出现 ENOTFOUND
【发布时间】:2018-04-25 06:29:36
【问题描述】:

我正在尝试使用此 project.json 文件为项目安装依赖项:

{
  "name": "Pizza",
  "version": "1.0.0",
  "description": "NIT Project",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "TheSmokingGnu",
  "license": "ISC",
  "dependencies": {
    "basil.js": "^0.4.3",
    "brfs": "^1.4.3",
    "ejs": "^2.4.1",
    "grunt": "^0.4.5",
    "grunt-browserify": "^4.0.1",
    "grunt-contrib-watch": "^0.6.1"
  }
}

我只是 cd 进入目录(或使用 webshtorm 的控制台),然后运行 ​​npm install:

npm install
npm ERR! code ENOTFOUND
npm ERR! errno ENOTFOUND
npm ERR! network request to http://registry.npmjs.org/ejs failed, reason: getaddrinfo ENOTFOUND ip ip:80
npm ERR! network This is a problem related to network connectivity.
npm ERR! network In most cases you are behind a proxy or have bad network settings.
npm ERR! network
npm ERR! network If you are behind a proxy, please make sure that the
npm ERR! network 'proxy' config is set properly.  See: 'npm help 

我使用的是 Windows 10(昨天刚刚安装),系统防火墙已关闭。我无意使用代理,我的配置列表如下所示:

>npm config list
; cli configs
metrics-registry = "http://registry.npmjs.org/"
scope = ""
user-agent = "npm/5.5.1 node/v8.9.1 win32 x64"

; userconfig C:\Users\taras\.npmrc
http-proxy = "http://username:password@ip:port"
https-proxy = "http://username:password@ip/:port"
registry = "http://registry.npmjs.org/"
strict-ssl = false

; builtin config undefined
prefix = "C:\\Users\\taras\\AppData\\Roaming\\npm"

; node bin location = C:\Program Files\nodejs\node.exe
; cwd = D:\Downloads\JS-Pizza-master\JS-Pizza-master
; HOME = C:\Users\taras
; "npm config ls -l" to show all defaults.

最后,我的错误日志:

0 info it worked if it ends with ok
1 verbose cli [ 'C:\\Program Files\\nodejs\\node.exe',
1 verbose cli   'C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js',
1 verbose cli   'install' ]
2 info using npm@5.5.1
3 info using node@v8.9.1
4 verbose npm-session 9d19f4920a39031f
5 silly install runPreinstallTopLevelLifecycles
6 silly preinstall Pizza@1.0.0
7 info lifecycle Pizza@1.0.0~preinstall: Pizza@1.0.0
8 silly install loadCurrentTree
9 silly install readLocalPackageData
10 silly install loadIdealTree
11 silly install cloneCurrentTreeToIdealTree
12 silly install loadShrinkwrap
13 silly install loadAllDepsIntoIdealTree
14 silly fetchPackageMetaData error for grunt@^0.4.5 request to http://registry.npmjs.org/grunt failed, reason: getaddrinfo ENOTFOUND ip ip:80
15 silly fetchPackageMetaData error for ejs@^2.4.1 request to http://registry.npmjs.org/ejs failed, reason: getaddrinfo ENOTFOUND ip ip:80
16 silly fetchPackageMetaData error for brfs@^1.4.3 request to http://registry.npmjs.org/brfs failed, reason: getaddrinfo ENOTFOUND ip ip:80
17 silly fetchPackageMetaData error for basil.js@^0.4.3 request to http://registry.npmjs.org/basil.js failed, reason: getaddrinfo ENOTFOUND ip ip:80
18 silly fetchPackageMetaData error for grunt-contrib-watch@^0.6.1 request to http://registry.npmjs.org/grunt-contrib-watch failed, reason: getaddrinfo ENOTFOUND ip ip:80
19 silly fetchPackageMetaData error for grunt-browserify@^4.0.1 request to http://registry.npmjs.org/grunt-browserify failed, reason: getaddrinfo ENOTFOUND ip ip:80
20 silly fetchPackageMetaData error for basil.js@^0.4.3 request to http://registry.npmjs.org/basil.js failed, reason: getaddrinfo ENOTFOUND ip ip:80
21 silly fetchPackageMetaData error for brfs@^1.4.3 request to http://registry.npmjs.org/brfs failed, reason: getaddrinfo ENOTFOUND ip ip:80
22 silly fetchPackageMetaData error for ejs@^2.4.1 request to http://registry.npmjs.org/ejs failed, reason: getaddrinfo ENOTFOUND ip ip:80
23 silly fetchPackageMetaData error for grunt@^0.4.5 request to http://registry.npmjs.org/grunt failed, reason: getaddrinfo ENOTFOUND ip ip:80
24 silly fetchPackageMetaData error for grunt-browserify@^4.0.1 request to http://registry.npmjs.org/grunt-browserify failed, reason: getaddrinfo ENOTFOUND ip ip:80
25 silly fetchPackageMetaData error for grunt-contrib-watch@^0.6.1 request to http://registry.npmjs.org/grunt-contrib-watch failed, reason: getaddrinfo ENOTFOUND ip ip:80
26 verbose type system
27 verbose stack FetchError: request to http://registry.npmjs.org/basil.js failed, reason: getaddrinfo ENOTFOUND ip ip:80
27 verbose stack     at ClientRequest.req.on.err (C:\Program Files\nodejs\node_modules\npm\node_modules\pacote\node_modules\make-fetch-happen\node_modules\node-fetch-npm\src\index.js:68:14)
27 verbose stack     at emitOne (events.js:116:13)
27 verbose stack     at ClientRequest.emit (events.js:211:7)
27 verbose stack     at Socket.socketErrorListener (_http_client.js:387:9)
27 verbose stack     at emitOne (events.js:116:13)
27 verbose stack     at Socket.emit (events.js:211:7)
27 verbose stack     at emitErrorNT (internal/streams/destroy.js:64:8)
27 verbose stack     at _combinedTickCallback (internal/process/next_tick.js:138:11)
27 verbose stack     at process._tickCallback (internal/process/next_tick.js:180:9)
28 verbose cwd D:\Downloads\JS-Pizza-master\JS-Pizza-master
29 verbose Windows_NT 10.0.16299
30 verbose argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "install"
31 verbose node v8.9.1
32 verbose npm  v5.5.1
33 error code ENOTFOUND
34 error errno ENOTFOUND
35 error network request to http://registry.npmjs.org/basil.js failed, reason: getaddrinfo ENOTFOUND ip ip:80
36 error network This is a problem related to network connectivity.
36 error network In most cases you are behind a proxy or have bad network settings.
36 error network
36 error network If you are behind a proxy, please make sure that the
36 error network 'proxy' config is set properly.  See: 'npm help config'
37 verbose exit [ 1, true ]

【问题讨论】:

  • 您的用户配置文件在我看来有点奇怪(如果您不想使用代理):http-proxy: "http://username:password@ip:port"。作为快速测试,我将删除 C:\Users\taras\.npmrc 文件(或仅重命名为 ignore.npmrc)并重新执行 npm install .
  • 这有帮助,谢谢。我记得运行了一个 set proxy 命令,但之后我卸载了 node 和 npm。猜猜设置保持不变。
  • 完美。如果我添加一个分析器,你能检查它“接受”吗?

标签: node.js windows npm npm-install


【解决方案1】:

您的用户配置文件看起来像您配置了某种代理:

; userconfig C:\Users\taras\.npmrc
http-proxy = "http://username:password@ip:port"
https-proxy = "http://username:password@ip/:port"
registry = "http://registry.npmjs.org/"
strict-ssl = false

如果您不打算使用代理,我会删除 C:\Users\taras.npmrc 并重新执行 npm install。 p>

更新: 由于配置文件存储在用户目录中,因此它将保持不变,例如:更新 npm。

【讨论】:

  • @Ali 如果您的错误需要支持,请花时间发布一个完整的问题,告诉我们您尝试做什么以及什么不起作用。 SO上有很多人支持你;)
  • 我正在尝试 npm install 但收到 ENOTFOUND 错误,我不知道我需要为 http-proxy 设置什么值,我检查了没有配置代理,所以我怎样才能得到这些价值观?
【解决方案2】:

可能是因为代理不代表 https。我做的是清除~/.npmrc的代理内容,或者使用

npm config delete proxy

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-02-20
    • 1970-01-01
    • 2022-01-12
    • 2021-07-10
    • 2018-11-22
    • 2018-02-07
    • 2019-11-07
    相关资源
    最近更新 更多