Импорт переменных в js

261
23 февраля 2018, 19:50

Подскажите. Есть файл settings.js в нем задаются значения цвета элемента.

var buttonColor = "Red";
export {buttonColor};

Есть файл main.js он подключается в html. Через него я меняю цвет элемента, заданный в сеттинге.

import {buttonColor} from './settings.js';

var submitButton = document.getElementById('submit-button');
function changeButtonColor(button) {
  button.style.backgroundColor = settings.buttonColor;
}
changeButtonColor(submitButton);

Но такой импорт не работает. Наверно, потому что он не видит файл settings.js, т.к. я его не подключаю в html. Как можно сделать, чтобы значения, задаваемые в настройках можно было использовать в файле main.js? Смысл в том, чтобы в настройках были только параметры, а сама реализация была в другом файле. Я новичок, поэтому прошу помощи.

Answer 1

Пока что еще не все браузеры нативно поддерживают модули ( can i use ) Поэтому, для того, что бы ваши модули работали, вам необходимо использовать специальные инструменты, которые на этапе сборки возьмут на себя ответственность в импорте/экспорте ваших модулей.

Один из самых популярных это webpack. С его помощью можно организовать модульную структуру. Более того, для вашей цели модули не нужны. Вы можете на этапе билда пробросить глобальную переменную ( которая будет видна внутри модулей ) и там хранить настройки. В зависимости от окружения и ситуаций этот конфиг можно будет менять

READ ALSO
Рендер отдельного компонента React

Рендер отдельного компонента React

Постараюсь правильно описать вопрос

289
Как кастомизировать дизайн dropzone.js

Как кастомизировать дизайн dropzone.js

Допустим у нас имеется поле drag & drop в которое мы помещаем img файлы, как изменить дизайн previewTemplate?

258
JS не присваивает объект

JS не присваивает объект

Уже 2 часа сижу с этим багом, хотя он очень банальный

203
Не могу обратиться к элементам массива, созданного добавлением элементов через AJAX

Не могу обратиться к элементам массива, созданного добавлением элементов через AJAX

ЗдравствуйтеУ меня имеется JSON файл, который содержит массив объектов

252