Я разрабатываю интерфейс React с Node / Express, используя клиент и сервер Apollo. Веб-интерфейс был создан с использованием create-react-app
.
На своем веб-интерфейсе я добавил конечную точку GraphQL, используя HttpLink
из apollo-boost
как таковое:
const httpLink = new HttpLink({ uri: 'http://localhost:8080/graphql' })
Это нормально при локальной разработке, однако, если я хочу протестировать веб-сайт (и косвенно конечную точку GraphQL) на другом устройстве - весь контент GraphQL не загружается, поскольку конечная точка не существует на локальном хосте устройство.
Для борьбы с этим я добавил следующее:
const httpLink = new HttpLink({
uri:
process.env.NODE_ENV === 'development'
? 'http://192.168.1.25:8080/graphql'
: 'https://example.com/graphql'
})
Это хорошо работает, но я занимаюсь разработкой на двух разных машинах. Таким образом, локальный IP, который обслуживает конечную точку GraphQL, не зафиксирован на 192.168.1.25
.
Затем я искал npm и нашел internal-ip
. Я подумал, что могу просто импортировать internal-ip
и превратить вышеприведенное в строку шаблона следующим образом:
const httpLink = new HttpLink({
uri:
process.env.NODE_ENV === 'development'
? `http://${internalIp.v4.sync()}:8080/graphql`
: 'https://example.com/graphql'
})
Однако при запуске через веб-пакет internalIp.v4.sync()
оценивается как null
.
Как лучше всего динамически устанавливать локальную конечную точку IP при работе с React и веб-пакетом, как описано в приведенной выше проблеме? В частности без запуска npm eject
?