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

#javascript #socket.io

Вопрос:

При быстрой разработке/итерации я переворачиваю комментарий, чтобы включить localhost. При развертывании или тестировании от начала до конца я переворачиваю комментарий, чтобы использовать herokuapp. Кажется, что привередливо переворачивать вещи в последний момент перед отправкой, и я уже дважды забыл и перенес неправильную вещь в main (heroku развертывается вне main).

 const socket = io('https://ramrod-garden-11633.herokuapp.com/'); // Set up on Heroku
// const socket = io('http://localhost:3000');
 

Существует ли стандартный способ заставить его работать автоматически?

Одним из способов была бы переменная среды на Heroku и проверка ее существования здесь (я думаю,~~, новичок в интерфейсе и не уверен, является ли переменная среды концепцией для интерфейса js). Поскольку я новичок, и это мое первое приложение, мне интересно, есть ли здесь лучшая практика или стандартный способ, который я пропустил.

Комментарии:

1. Привет, что мне нравится делать, так это иметь одну линию как для разработки, так и для производства при подключении. Я использую location.protocol для определения http и https, местоположения. имя хоста для имени хоста, т. е. localhost против домена, и location.port для порта для подключения. В конечном счете это заканчивается тем, что ${window.location.protocol}//${window.location.hostname}:${window.location.port}

2. Я нашел довольно отличное решение, следуя вместе с youtube.com/watch?v=SBvmnHTQIPY . Настройте сценарии prod/dev/etc. в файле package.json, а затем используйте эту логику в коде с помощью process.env.NODE_ENV