简体   繁体   中英

How to resolve NPM proxy Issue whilel running Node JS application

I have installed Noed JS and NPM. I have cloned the repo from git and trying to run the app in local. But I am facing below proxy issue while running app.

 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'`

I have check with proxy and it is set to below.network.

 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

I tried to set proxy to https://registry.npmjs.com/nodemon using below command.

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

When I run npm install after this, again I got the same error.

 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'`

I have tried many other workarounds from google but still facing the same proxy issue. I am just looking to run this app in local so that I can test my code in local before deploying. Am I missing something here.

Below is my sample package.json file.

{
  "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"
    ]
  }
}

Edit:

Running the npm config ls command returns the following result:

 ; 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.

Edit 2:

I have now run the following command to delete the erroneous configuration key, ie the https://registry.npmjs.com/nodemon = "" part:

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

and again ran the npm install command. But again got the proxy error as below:

 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 ...

This fixed it for me:

npm config delete proxy

npm config delete http-proxy

npm config delete https-proxy

Happy coding !

I have resolved this issue with below steps :

  1. make sure you have internet connection: ping 8.8.8.8
  2. make sure you have DNS resolver working: ping www.google.com
  3. make sure you can access registry.npmjs.org: ping registry.npmjs.org
  4. make sure you can connect via https.

Run below command in npm command prompt or Visual Studio Code terminal.

npm config rm proxy

npm config rm https-proxy

Try in your browser: https://registry.npmjs.org/

Make sure you are trying to connected to:

registry.npmjs.org

and not to:

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

Use below command to set registry.

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

If you are using a proxy to access the Web, then you also have to configure npm to use it. Use:

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

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

Points to remember here while setting above two values :

  1. proxyname you need to check with your company network team. Enter that proxy URL in above 2 values.
  2. If your password contains any special character then replace it with Encoded character. In this command you can't provide a password with special character. Replace only special character not .(dot).

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

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

Then try to run your npm install command and it should work.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM