gpt4 book ai didi

javascript - 运行 Node JS 应用程序时如何解决 NPM 代理问题

转载 作者:行者123 更新时间:2023-12-05 00:57:30 26 4
gpt4 key购买 nike

我已经安装了 Noed JS 和 NPM。我已经从 git 克隆了 repo 并尝试在本地运行该应用程序。但是我在运行应用程序时遇到了以下代理问题。

npm install nodemon
npm ERR! code ENOTFOUND
npm ERR! errno ENOTFOUND
npm ERR! network request to https://registry.npmjs.com/nodemon failed, reason: getaddrinfo ENOTFOUND 28
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 config'`

我已经检查了代理,它设置为低于网络。

Pinging proxy.internal.domainname.com with 32 bytes of data:
Reply from <ip address="">: bytes=32 time=2ms TTL=247
Reply from <ip address="">: bytes=32 time=2ms TTL=247
Reply from <ip address="">: bytes=32 time=2ms TTL=247
Reply from <ip address="">: bytes=32 time=2ms TTL=247
Ping statistics for <ip address="">:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 2ms, Maximum = 2ms, Average = 2ms

我尝试使用以下命令将代理设置为 https://registry.npmjs.com/nodemon

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

当我在此之后运行 npm install 时,我又遇到了同样的错误。

npm --proxy http://registry.npmjs.org/  install npm
npm ERR! code ENOTFOUND
npm ERR! errno ENOTFOUND
npm ERR! network request to http://registry.npmjs.org/npm failed, reason: getaddrinfo ENOTFOUND 28
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 config'`

我尝试了许多其他来自谷歌的解决方法,但仍然面临同样的代理问题。我只是想在本地运行这个应用程序,这样我就可以在部署之前在本地测试我的代码。我在这里错过了什么吗?

下面是我的示例 package.json 文件。

{
"name": "abc",
"version": "0.0.1",
"description": "abc",
"main": "dist/index.js",
"engines": {
"node": "8.0.0",
"npm": "5.0.0"
},
"scripts": {
"prestart": "npm run -s build",
"start": "node dist/index.js",
"dev": "nodemon src/index.js --exec \"node -r dotenv/config -r babel-register\" localdev",
"clean": "rimraf dist && rimraf -p",
"build": "npm run clean && mkdir -p dist && babel src -s -D -d dist",
"test": "jest --watch",
"lint": "esw -w src test"
},
"keywords": [
"express",
"babel",
"es6",
"es2015",
"es2016",
"es2017",
"eslint"
],
"author": "abc",
"license": "LICENSED",
"dependencies": {
"babel-cli": "6.26.0",
"babel-plugin-transform-object-rest-spread": "6.26.0",
"babel-preset-env": "1.6.1",
"cors": "2.8.5",
"express": "4.16.4",
"js-yaml": "3.12.2",
"mssql": "5.0.0",
"winston": "3.1.0",
"winston-daily-rotate-file": "3.5.1"
},
"devDependencies": {
"babel-eslint": "7.2.3",
"babel-jest": "21.0.2",
"babel-register": "6.24.1",
"dotenv": "4.0.0",
"eslint": "4.10.0",
"eslint-config-airbnb-base": "12.1.0",
"eslint-plugin-import": "2.8.0",
"eslint-plugin-jest": "21.0.2",
"eslint-watch": "3.1.0",
"nodemon": "1.18.10",
"rimraf": "2.6.3"
},
"babel": {
"presets": [
[
"env",
{
"targets": {
"node": "current"
}
}
]
],
"plugins": [
"transform-object-rest-spread"
]
},
"eslintConfig": {
"parser": "babel-eslint",
"plugins": [
"import",
"jest"
],
"parserOptions": {
"ecmaVersion": 2017,
"sourceType": "module"
},
"env": {
"node": true,
"jest": true
},
"extends": [
"eslint:recommended"
]
}
}

编辑:

运行 npm config ls 命令返回以下结果:

; cli configs
metrics-registry = "http://registry.npmjs.org/async-each"
scope = ""
user-agent = "npm/6.13.4 node/v12.14.0 win32 x64"

; userconfig C:\Users\username\.npmrc
https-proxy = "http://registry.npmjs.org/"
https://registry.npmjs.com/nodemon = ""
key = ""
registry = "http://registry.npmjs.org/"
strict-ssl = false

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

; node bin location = C:\Program Files\nodejs\node.exe
; cwd = H:\IRB PMX Services\core\src
; HOME = C:\Users\username
; "npm config ls -l" to show all defaults.

编辑 2:

我现在已经运行以下命令来删除错误的配置 key ,即 https://registry.npmjs.com/nodemon = "" 部分:

npm config delete https://registry.npmjs.com/nodemon

然后再次运行 npm install 命令。但再次得到如下代理错误:

npm ERR! network request to registry.npmjs.org/async-each/@types%2fnode failed, reason: read ECONNRESET
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
...

最佳答案

我已经通过以下步骤解决了这个问题:

  1. 确保您有互联网连接:ping 8.8.8.8
  2. 确保您的 DNS 解析器正常工作:ping www.google.com
  3. 确保您可以访问 registry.npmjs.org:ping registry.npmjs.org
  4. 确保您可以通过 https 连接。

在 npm 命令提示符或 Visual Studio Code 终端中运行以下命令。

npm config rm 代理

npm config rm https-proxy

在您的浏览器中尝试:https://registry.npmjs.org/

确保您正在尝试连接到:

registry.npmjs.org

而不是:

"registry.npmjs.org registry.npmjs.org:443"

使用以下命令设置注册表。

npm 配置设置注册表 https://registry.npmjs.org/

如果您使用代理来访问 Web,那么您还必须配置 npm 才能使用它。使用:

npm config 设置代理 http://username:password@proxyname:8080

npm config set https-proxy http://username:password@proxyname:8080

设置以上两个值时要记住的要点:

  1. 您需要与公司网络团队核实的代理名称。在上述 2 个值中输入该代理 URL。
  2. 如果您的密码包含任何特殊字符,请将其替换为编码字符。在此命令中,您不能提供带有特殊字符的密码。仅替换特殊字符而不是 .(点)。

    Example: password is : Welcome@12# then it will be like Welcome%4012%23.

https://www.w3schools.com/tags/ref_urlencode.asp

然后尝试运行您的 npm install 命令,它应该可以工作。

关于javascript - 运行 Node JS 应用程序时如何解决 NPM 代理问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60037937/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com