Загрузить конфигурацию в объекте глобального окна - PullRequest
0 голосов
/ 07 мая 2019

Я хотел бы загрузить файл конфигурации для использования в качестве глобального объекта в различных частях приложения. Я не хочу импортировать, потому что я хочу отделить его от bundle.js, чтобы иметь возможность изменить его в будущем, не касаясь приложения.

Я пришел с этим решением, и оно работает, правильно? Могу ли я столкнуться с проблемами при подключении конфигурации к объекту окна?

// index.js

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no" />
    <script src="appconfig.js" type="text/javascript"></script>
    <script src="myAppBundle.js" type="text/javascript"></script>
  </head>
  <body>

...................

// appconfig.js

var GlobalAppConfig = (function () {
      return {
          pictures: "https://www.example.com/pictures",
          videos: "https://www.example.com/videos",
        }
})();

.......................

// App.js

class App extends Component {

    constructor(props) {
            super(props);
            this.state = {
                pictures: window.GlobalAppConfig.pictures
                videos: window.GlobalAppConfig.videos
            }

      }

1 Ответ

0 голосов
/ 07 мая 2019

Недостатком этого метода является то, что window может быть недоступен в каждом контексте, например в тестовой среде.

Переменные среды будут обычным решением.Вы можете определить их во время сборки (при условии шага сборки Yarn):

$ PICTURES_URL='https://www.example.com/pictures' yarn build

Затем в вашем коде:

const picturesURL = process.env.PICTURES_URL || '';

Перестроить после изменения переменной среды.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...