Использование dotenv со связанным клиентским кодом - PullRequest
0 голосов
/ 27 августа 2018

Я создаю приложение js-узла в качестве расширения Contentful UI.Код размещен здесь: https://github.com/doodybrains/media-tagging-extension

Большая часть файла gulp - это котельная пластинка, но в итоге все объединяется в файл index.html.Я знаю, что переменные env не должны вызываться или обрабатываться в клиентском коде, но я не знаю, как их получить до сборки проекта.Когда я запускаю репо в разработке и звоню process.env.NAME_OF_TOKEN из src/index.js, он возвращает undefined.Я попытался импортировать dotenv, создать конвейер gulp env и т. Д.

ЛЮБОЙ СОВЕТ будет таким полезным.Приложение развертывается в Netlify, и у меня уже есть переменные env.

спасибо

1 Ответ

0 голосов
/ 27 августа 2018

Вы можете создать другой файл js, который может использовать NODE_ENV для установки правильной переменной.Я предпочитаю звонить в службу, чтобы получить все свои свойства при запуске приложения и установить на какой-то карте.Я использую карту, чтобы установить значение в разных местах моего кода.

Некоторые примеры кода ...

const env = process.env.NODE_ENV || 'local';
const sit = {
    URL: 'sit url',
    HOST: 'sit host',
    ENV: 'sit'
};
const uat = {
    URL: 'uat url',
    HOST: 'uat host',
    ENV: 'uat'
};

var property_service_url = config[env].URL;
var property_service_host = config[env].HOST;

Перед запуском приложения вы можете установить среду NODE_ENV =.Например, в Linux.

export NODE_ENV=uat

Это обеспечит правильную настройку среды.Теперь в вашем app.js вы можете позвонить в службу для загрузки ваших свойств.Если вы не хотите вызывать службу, вы можете установить ее так же, как задаются URL и HOST.

...