Как использовать $npm_config_ в package.json?

Я использую create-react-app для моего проекта React (извлечен), и я настроил прокси в package.json, Но я не хочу, чтобы мои учетные данные были зафиксированы в этом файле. Так что я добавил в npm, используя npm config set my_user xxxx, Я тоже вижу их в моем ~/.npmrc.

"proxy": {
  "/api/v3/": {
    "target": "https://ourstagingserver.nl/",
    "changeOrigin": true,
    "ssl": false,
    "secure": false,
    "headers": {
      "username": "$npm_config_my_user",
      "password": "$npm_config_my_pass"
    }
  },

Это не работает Имя пользователя и пароль не используются в запросах прокси.

Но если я добавлю это в "скрипты":

"hello": "echo $npm_config_my_user $npm_config_my_pass

и беги npm run helloоба повторяются...

Есть идеи? Это должно сработать или я делаю это неправильно?

Спасибо! Гис

1 ответ

Я не понял, использование $npm_config_ переменные для этой цели, но я решил проблему использования переменных ENV для прокси в create-реагировать-приложение:

В scripts/start.js (строка 62 ниже const proxySetting = require(paths.appPackageJson).proxy), Добавь это:

proxySetting[Object.keys(proxySetting)[0]].headers.username = process.env.PROXY_USERNAME;
proxySetting[Object.keys(proxySetting)[0]].headers.password = process.env.PROXY_PASSWORD;

или вы можете перебрать объекты в proxySetting и установить учетные данные для каждого объекта, если у вас есть несколько API для прокси:

Object.keys(proxySetting).forEach(function(proxy) {
  proxySetting[proxy].headers.username = process.env.PROXY_USERNAME;
  proxySetting[proxy].headers.password = process.env.PROXY_PASSWORD;
});

Замечания: scripts/start.js это файл, сгенерированный приложением create-реагировать

Другие вопросы по тегам