Конфигурация среды Vue.js - PullRequest
       13

Конфигурация среды Vue.js

0 голосов
/ 10 февраля 2019

Я не хочу создавать клиентское приложение, используя Vue.js.В настоящее время я сталкиваюсь с вопросом: как мне получить адрес моего бэкэнда?

У меня есть основные ограничения для решения, которое должно ответить на этот вопрос: конечный клиентский артефакт (результатПроцесс сборки, "vue-cli-service build") должен быть независимым от среды.Это важно!Это означает, что никакая информация, специфичная для окружающей среды, не должна быть встроенной.Если адрес моей серверной службы изменяется, НЕ ДОЛЖНО быть необходимо создавать новый клиентский артефакт.НЕОБХОДИМО иметь возможность просто перенастроить производственную среду и повторно использовать текущий клиентский артефакт.

Мой подход заключается в добавлении дополнительного файла конфигурации, который доставляется тем же веб-сервером, который также доставляет мой клиент Vue.js:/configuration.json или что-то в этом роде.Этот файл конфигурации может содержать информацию, которая мне нужна.Этот подход можно разделить на 3 подзадачи: (a) Добавить функциональность клиенту Vue.js для чтения configuration.json с веб-сервера (который также доставляет клиента).Это должно быть легко.(b) Найдите способ, позволяющий производственному веб-серверу доставить этот файл configuration.json.У меня уже есть некоторые идеи для этого.(c) Найдите способ, позволяющий локальному серверу разработки доставить дополнительную конфигурацию. json.

Моя самая большая проблема - (c) прямо сейчас.Я не знаю, как настроить локальный сервер разработки, который запускается "vue-cli-service serve".

Есть идеи, как решить (c)?Может быть, вы тоже знаете лучший способ?

1 Ответ

0 голосов
/ 11 февраля 2019

Я просто даю следующий ответ на другой вопрос, но он может относиться и к вашему вопросу.Если вам нужно загрузить определенные пресеты из файла JSON.Как создать этот JSON-файл - отдельный вопрос, я думаю.

У меня был похожий случай, когда мне нужно было настроить некоторые пресеты, не перестраивая проект каждый раз.В итоге я переместил объект Vue, который отображал приложение в асинхронной функции Axios.Конечно, это влияет на время загрузки, так как оно ожидает загрузки файла JSON, в моем случае это было менее важно.Это сводка такой установки.

axios.get('./config.json')
.then(function(response) {
    let config = response.data
    //commit data to vuex store for example

    new Vue({
        store,
        render: h => h(App)
    }).$mount('#app')
})
.catch(function(error) {
    console.log(error)
})
...