Как использовать $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-реагировать