NodeJS 运行npm install时的ENOTFOUND

x4shl7ld  于 2023-06-29  发布在  Node.js
关注(0)|答案(3)|浏览(270)

我正在尝试使用这个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(昨天刚刚安装),系统防火墙关闭。我没有任何使用proxys的意图,我的配置列表看起来像这样:

>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 ]
5tmbdcev

5tmbdcev1#

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

; 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

  • 更新:* 由于配置文件存储在用户目录中,因此当您使用更新npm。
r8uurelv

r8uurelv2#

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

npm config delete proxy
wn9m85ua

wn9m85ua3#

我遇到了同样的问题,我通过点击以下命令解决了这个问题:

1. npm config delete registry-name

您可以将registry-name替换为您的实际注册表。

2. npm config delete registry
3. npm config delete @registry

相关问题