Включение объектов конфигурации в файлы React EJS через внешний JS

avatar
Eliseo D'Annunzio
8 августа 2021 в 23:34
41
0
0

Я все еще новичок в ряде концепций React, так что это может быть что-то, с чем я еще не знаком... так что терпите меня.

У меня есть проект React, в котором в настоящее время используется несколько файлов EJS для двух связанных брендов, что теперь требует от меня разделения брендов в коде, чтобы у меня был общий код, и я преобразовывал любые различия между брендами в серию конфигураций. файлы, так что после определения конкретной марки во время загрузки документа можно будет загрузить соответствующий файл конфигурации и вставить значения конфигурации... Таким образом, по возможности не следует ветвление на основе марок.

Один такой основной файл шаблона имеет следующую настройку:

<% require(`../../config/${process.env.BRAND}/P_Display_Locations.js`) %>
<%= require('../layout/page_header.ejs')() %>
<%= require('../components/display-locations-dev-data.ejs')() %>
<%= require('../components/display-locations-header.ejs')() %>
<%= require('../components/display-locations-map.ejs')() %>
<%= require('../components/display-locations-centres.ejs')() %>
<%= require('../layout/page_footer.ejs')() %>

Так что в этом случае, в зависимости от марки, будь то ABC или XYZ, соответствующий файл конфигурации может быть загружен из ../../config/ABC/P_Display_Locations.js например...

Однако кажется, что даже несмотря на то, что файл разрешается (что я проверил, вызывая ошибки при изменении пути к файлу в шаблоне), поэтому я знаю, что правильно ссылаюсь на путь, кажется, что объект не передается остальной части шаблона.

В данном случае содержимое ../../config/ABC/P_Display_Locations.js выглядит следующим образом:

const P_DISPLAY_LOC = {
  cfg: {
    heading: "Display Homes"
  }
};

Но когда я пытаюсь вывести значение P_DISPLAY_LOC.cfg.heading в тег <h1> в ../components/display-locations-header.ejs следующим образом:

<h1 class="c-page-header__heading ">
  <%= P_DISPLAY_LOC.cfg.heading %>
</h1>

... Я получаю следующие ошибки:

ERROR in Template execution failed: ReferenceError: P_DISPLAY_LOC is not defined

ERROR in   ReferenceError: P_DISPLAY_LOC is not defined

В связи с чем возникают вопросы: а) что именно я сделал, чтобы значение, которое, как я полагал, правильно ссылалось на не, было прочитано приложением, и б) как мне либо i) изменить мою настройку ссылки на файл конфигурации в файле шаблона, ii) изменить фактический файл конфигурации, либо iii) изменить средства, с помощью которых я делаю вызов переменной конфигурации, чтобы убедиться, что это правильно ссылаются при выполнении?

Заранее спасибо.

Источник

Ответы (0)