Это хорошее использование переменных окружения . По сути, скажем, у вас был ключ API 12345
. И у вас была такая функция:
async function fetchResults() {
await fetch("myapi.com/lookup?key=12345")
}
Вместо этого вы могли бы сделать:
async function fetchResults() {
await fetch("myapi.com/lookup?key=${process.env.API_KEY}")
}
Переменная окружения хранится на вашем компьютере, поэтому она никогда не переходит в GitHub, что позволяет вам предоставлять код как открытый исходный код, сохраняя конфиденциальность ваших чувствительных ключей.
Редактировать: Поэтому я перечитал ваш вопрос и вижу, что вы говорите о публикации на страницах GitHub. Главное, на что следует обратить внимание, это то, что пользователь может видеть на стороне клиента . GitHub Pages размещает только «клиентскую» часть вашего приложения. Поэтому, если ваш клиентский (браузерный) веб-сайт выполняет API-вызов к myapi.com/lookup?key=12345
, они смогут увидеть его, несмотря ни на что, поскольку его браузер делает запрос, и они могут видеть все, что делает их браузер.
Однако лучше всего написать серверный код для запуска вашего приложения. Для этого вы можете использовать то, что я предложил выше, где вы добавляете переменные окружения на тот сервер, который используете для размещения (например, вы можете легко сделать это с помощью [Zeit Now][2]
или Heroku ). Таким образом, вы можете поделиться своим кодом, но переменные среды остаются в секрете на компьютере, на котором выполняется код на стороне сервера.