Включение файла в JavaScript в Rails

#javascript #ruby-on-rails #webpacker

#javascript #ruby-on-rails #webpacker

Вопрос:

Я знаю, что подобные вопросы задавались тысячу раз раньше, но я теряюсь в ссылках на ECMAScript, и большинство ответов предназначены для включения в HTML-файл, а Webpacker может создать некоторые трудности.

У меня есть около 50 ссылок на карты и другие источники, которые я использую в нескольких файлах JavaScript.

Использование webpacker, поэтому мой файл JavaScript app/packs/webpacker/olLocationShowMap.js (я отклоняюсь от текущего соглашения, называя папку webpacker вместо javascript.)

В настоящее olLocationShowMap.js время содержит несколько сотен строк определений для переменных, которые я хотел бы использовать в другом файле JavaScript, который используется на другой странице в другой модели. Мой подход заключался бы в создании файла с именем app/packs/webpacker/mapVars.js и включении его в два других файла JavaScript.

Справочная информация: скрипт вызывается из .html.erb с помощью <%= javascript_pack_tag 'olLocationShowMap' %>

Как это делается? Я попробовал erb, но вышеприведенная строка завершается ошибкой, если файл назван olLocationShowMap.js.erb

Некоторая общая информация:

 var osmLink = '<a href="https://openstreetmap.org">OpenStreetMap</a>',
  esriLink = '<a href="https://www.esri.com/">ESRI</a>',
  mbLink = '<a href="https://mabbox.com/">OpenStreetMap</a>',
 <more of these>

// / URLs for the servers
var osmUrl = 'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png',
  esriUrl =
    'https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServe
r/tile/{z}/{y}/{x}',
 <more of these>
  

Комментарии:

1. Webpacker по умолчанию не поддерживает .erb файлы. Вам необходимо включить интеграцию github.com/rails/webpacker/blob/master/docs/integrations.md#erb .

2. @max Я выполнил две рекомендуемые вещи (и я просто повторил команду и проверил webpacker.yml файл, но вызов из show.html.erb завершается с ошибкой. http://localhost:3000/locations/164 500 (Internal Server Error) и Webpacker can't find olLocationMap.js.erb . Я попытался изменить вызов на <%= javascript_pack_tag 'olLocationMap.js.erb' %>