Vue CLI - сохранить конфигурационный файл как внешний после компиляции - PullRequest
0 голосов
/ 02 января 2019

Я разрабатываю приложение с помощью Vue CLI. Это приложение представляет собой веб-интерфейс, который должен взаимодействовать с API отдыха на плате.

Итак, поскольку доска будет двигаться, IP платы будет меняться со временем в зависимости от того, где я нахожусь.

Это текущее дерево моего проекта:

Project tree

IP-конфигурация содержится в файле Settings.js:

export const Settings = {
    // Server configuration
    SERVER_IP: '127.0.0.1',
    SERVER_PORT: '9000',

    SERVER_PROTOCOL: 'http', // http or https

    // Website configuration
    DEBUG_MODE: true
};

И в моих файлах я импортирую этот IP со следующим утверждением:

import {Settings} from '../../Settings'
const ip = Settings.SERVER_IP;

// Do stuff

Это отлично работает. Но проблема в том, что я должен перекомпилировать все при смене IP. Потому что Settings.js скомпилирован с другими файлами JS.

Итак, я хотел бы знать, есть ли способ получить файл конфигурации, который останется в каталоге dist / и будет читаться моим приложением JS во время выполнения. Поэтому мне не придется перекомпилировать все данные каждый раз, когда меняются IP-адреса сервера приложений.

Ты за помощь:)

1 Ответ

0 голосов
/ 03 января 2019

Знаете ли вы полный список IP-адресов заранее?Если это так, вы можете создать функцию, которая возвращает правильный IP-адрес на основе любой логики времени / местоположения.

В противном случае вы можете попробовать переместить файл настроек в общую папку, добавить его в файл .gitignore, убедившись, что вы ссылаетесь на него в вашем public / index.html.Теперь он будет находиться за пределами скомпилированного приложения Vue и может быть доступен из Vue как переменная глобальных настроек.

Таким образом, вместо import {Settings} from '../../Settings' вы бы указали window.Settings

например, const ip = window.Settings.SERVER_IP;

Таким образом, вы можете редактировать настройки напрямую, без необходимости каждый раз перекомпилировать.

...