Telstra Ответов: 2

Как решить проблему прокси-сервера NPM при запуске приложения Node JS


Привет

Я установил Noed JS и NPM. Я клонировал РЕПО из git и пытаюсь запустить приложение в локальном режиме. Но я сталкиваюсь с проблемой ниже прокси-сервера во время запуска приложения.

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'


У меня есть проверка с прокси-сервером, и он установлен ниже сети.

`Пингует proxy.internal.domainname.com с 32 байтами данных:
Ответ от <ip address="">: bytes=32 time=2ms TTL=247
Ответ от <ip address="">: bytes=32 time=2ms TTL=247
Ответ от <ip address="">: bytes=32 time=2ms TTL=247
Ответ от <ip address="">: bytes=32 time=2ms TTL=247
Статистика Ping для <ip address="">:
Пакеты: отправлено = 4, получено = 4, потеряно = 0 (потеря 0% ),
Приблизительное время поездки туда и обратно в миллисекундах:
Минимум = 2 мс, максимум = 2 мс, среднее значение = 2 мс

Я попытался установить прокси на 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'



Я пробовал много других обходных путей от google, но все еще сталкивался с той же проблемой прокси-сервера.
Я просто хочу запустить это приложение в локальном режиме, чтобы я мог протестировать свой код в локальном режиме перед развертыванием. Может быть, я что-то упустил?

Ниже приведен мой пример файла 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"
    ]
  }
}


Что я уже пробовал:

У меня есть проверка с прокси-сервером, и он установлен ниже сети.

Пингинг proxy.internal.domainname.com с 32 байтами данных:
Ответ от <ip address="">: bytes=32 time=2ms TTL=247
Ответ от <ip address="">: bytes=32 time=2ms TTL=247
Ответ от <ip address="">: bytes=32 time=2ms TTL=247
Ответ от <ip address="">: bytes=32 time=2ms TTL=247
Статистика Ping для <ip address="">:
Пакеты: отправлено = 4, получено = 4, потеряно = 0 (потеря 0% ),
Приблизительное время поездки туда и обратно в миллисекундах:
Минимум = 2 мс, максимум = 2 мс, среднее значение = 2 мс

Я попытался установить прокси на https://registry.npmjs.com/nodemon используя нижеприведенную команду.

НПМ установить конфиг реестра "http://registry.npmjs.org/

но после этого я также столкнулся с той же проблемой прокси-сервера.

2 Ответов

Рейтинг:
2

Telstra

Я решил эту проблему с помощью следующих шагов :

убедитесь, что у вас есть подключение к интернету: ping 8.8.8.8
убедитесь, что у вас работает DNS-распознаватель: ping www.google.com
убедитесь, что вы можете получить доступ registry.npmjs.org: пинг registry.npmjs.org
убедитесь, что вы можете подключиться через https.

Выполните следующую команду в командной строке npm или терминале кода Visual Studio.

npm config rm proxy
npm config rm https-proxy


Попробуйте в своем браузере: https://registry.npmjs.org/

Убедитесь, что вы пытаетесь подключиться к:
registry.npmjs.org

и не для того, чтобы:
registry.npmjs.org registry.npmjs.org:443

Используйте приведенную ниже команду для установки реестра.
npm config set registry https://registry.npmjs.org/


Если вы используете прокси-сервер для доступа в интернет, то вам также необходимо настроить npm для его использования.
npm config set proxy http://username:password@proxyname:8080

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


Пункты, которые нужно запомнить здесь при установке выше двух значений :
1. proxyname будет иметь вид, вам нужно проверить с ваш командный сетевой компании. Введите этот URL-адрес прокси-сервера в вышеприведенных двух значениях.
2. Если ваш пароль содержит какой-либо специальный символ, замените его закодированным символом. В этой команде вы не можете ввести пароль со специальным символом. Замените только специальный символ not .(точка).
Цитата:
Пример: пароль : Welcome@12# тогда он будет похож на Welcome%4012%23.

Затем попробуйте запустить команду установки npm, и она должна работать.


Richard MacCutchan

Строка ниже "и не надо" может нуждаться в редактировании. Кроме того, +5 за такое всеобъемлющее и хорошо написанное решение.

Telstra

Большое спасибо за ваши слова. Это поможет тем, кто сталкивается с той же проблемой. Мне потребовалось 15 дней, чтобы решить эту проблему. Надеюсь, что это решение сэкономит время для других.

jasterix

Отличный ответ! Пройдя через предварительные шаги, которые вы изложили (ping ping 8.8.8.8 и т. д.), Я понял, что мой терминал странно не подключается к интернету. Перезагрузка моего компьютера исправила эту проблему

Рейтинг:
0

phil.o

Прокси-сервер-это служба, которая проходит между вашей машиной и внешней сетью (интернетом) и применяет политики доступа, основанные на условиях (клиентская машина, адрес назначения, протокол, номер порта, время суток, членство пользователя в группе и т. д.).
Если у вас есть прокси-сервер в вашей сети, то вы должны предоставить его внутренний адрес. 'https://registry.npmjs.com/nodemon-это не прокси, это адрес назначения.
Если у вас по-прежнему возникают проблемы с доступом после настройки адреса прокси-сервера (proxy.internal.domainname.com), то есть, скорее всего, существует политика на прокси-сервере, которая запрещает вам получать доступ к этому постороннему контенту. Затем нужно поговорить с вашим сетевым администратором/иерархией и попытаться настроить прокси-сервер так, чтобы он разрешал такой доступ.


Telstra

Спасибо за ваше предложение. Я свяжусь с командой сети.