Возврат блока JS и HTML-кода, расположенного в отдельном файле

#javascript #node.js

Вопрос:

Я возвращаю блок кода, содержащий HTML и JS, который используется в качестве шорткода для использования в шаблоне.

Мой вопрос: как мне изолировать блок кода в отдельный файл, но все равно вернуть его?

Таким образом, я могу легче поддерживать его и использовать преимущества цветовой подсветки синтаксиса и т. Д.

Я не уверен, что это лучшая практика.

 const outdent = require('outdent')({ newline: ' ' });
module.exports = (numValue) => {
    return outdent`
    <div>
    <div class="bg-white shadow overflow-hidden sm:rounded-lg">
      <div class="px-4 py-5 sm:px-6">
        <h3 class="text-lg leading-6 font-medium text-gray-900">
              Calculator
        </h3>
        <p class="mt-1 mb-6 max-w-2xl text-sm text-gray-500">
          Calculate the days
        </p>
        <label for="numberItem" class="sr-only">Number Item</label>
        <input type="number" name="numberItem" id="numberItem" value="${numValue}" oninput="converter(this.value)" onchange="converter(this.value)" class="shadow-sm focus:ring-indigo-500 focus:border-indigo-500 block w-full sm:text-sm border-gray-300 rounded-md" placeholder="1000000">
      </div>
      <div class="border-t border-gray-200">
        <dl>
          <div class="bg-gray-100 px-4 py-5 sm:grid sm:grid-cols-3 sm:gap-4 sm:px-6">
            <dt class="text-sm font-medium text-gray-500">
              Standard Time
            </dt>
            <dd class="mt-1 text-sm text-gray-900 sm:mt-0 sm:col-span-2">
              <span id="nr_hours">0</span> Hours
            </dd>
          </div>
          <div class="bg-white px-4 py-5 sm:grid sm:grid-cols-3 sm:gap-4 sm:px-6">
            <dt class="text-sm font-medium text-gray-500">
            </dt>
            <dd class="mt-1 text-sm text-gray-900 sm:mt-0 sm:col-span-2">
              <span id="nr_days">0</span> Days
            </dd>
          </div>
        </dl>
      </div>
    </div>
    
    </div>
    
    
    <script>
   
    function converter(numValue) {
    
      // Set up nodes for changing values
      var nr_hoursNode = document.getElementById('nr_hours');
      var nr_daysNode = document.getElementById('nr_days');

      var nr_hoursResult = numValue * 0.0000018;
      var nr_daysResult = nr_hoursResult * 475;
    
      // Display Values
      nr_hoursNode.innerHTML = nr_hoursResult.toFixed(5);
      nr_daysNode.innerHTML = nr_daysResult.toFixed(2); 
    }
    
    </script>`;
};