Вирішуємо проблему модуля PDF в Drupal 9

Тож сьогоднішня проблема - на сайті з Drupal 9 поставили модуль для генерації зображення з pdf - PDF, котрий використовує бібіліотеку pdf.js. 

Після встановлення модуля, бібліотеки та наче налаштування полей матеріала, отримуємо перші помилки, через те, що за замовченням модуль очікує побачити в бібліотеці файли розширення  .js, але там є тільки  .mjs.

Взагалі то розробники вже зробили патч, котрий начебто вирішив це.

diff --git a/pdf.libraries.yml b/pdf.libraries.yml
index 1054e6c..f5239e1 100755
--- a/pdf.libraries.yml
+++ b/pdf.libraries.yml
@@ -5,7 +5,7 @@ mozilla.pdf.js:
     url: https://raw.githubusercontent.com/mozilla/pdf.js/master/LICENSE
     gpl-compatible: true
   js:
-    /libraries/pdf.js/build/pdf.js: {}
+    /libraries/pdf.js/build/pdf.mjs: { attributes: { type: module } }
     #//mozilla.github.io/pdf.js/build/pdf.js: { type: external, minified: false }
 drupal.pdf:
   dependencies:
diff --git a/src/Plugin/Field/FieldFormatter/PdfPages.php b/src/Plugin/Field/FieldFormatter/PdfPages.php
index 008f051..f894e40 100755
--- a/src/Plugin/Field/FieldFormatter/PdfPages.php
+++ b/src/Plugin/Field/FieldFormatter/PdfPages.php
@@ -72,7 +72,7 @@ class PdfPages extends FormatterBase {
       }
     }
     $elements['#attached']['library'][] = 'pdf/drupal.pdf';
-    $worker = \Drupal::service('file_url_generator')->generateAbsoluteString(base_path() . 'libraries/pdf.js/build/pdf.worker.js');
+    $worker = \Drupal::service('file_url_generator')->generateAbsoluteString(base_path() . 'libraries/pdf.js/build/pdf.worker.mjs');
     $elements['#attached']['drupalSettings'] = [
       'pdf' => [
         'workerSrc' => $worker,
diff --git a/src/Plugin/Field/FieldFormatter/PdfThumbnail.php b/src/Plugin/Field/FieldFormatter/PdfThumbnail.php
index 92bdbd3..23ce09d 100755
--- a/src/Plugin/Field/FieldFormatter/PdfThumbnail.php
+++ b/src/Plugin/Field/FieldFormatter/PdfThumbnail.php
@@ -92,7 +92,7 @@ class PdfThumbnail extends FormatterBase {
       }
     }
     $elements['#attached']['library'][] = 'pdf/drupal.pdf';
-    $worker = \Drupal::service('file_url_generator')->generateAbsoluteString(base_path() . 'libraries/pdf.js/build/pdf.worker.js');
+    $worker = \Drupal::service('file_url_generator')->generateAbsoluteString(base_path() . 'libraries/pdf.js/build/pdf.worker.mjs');
     $elements['#attached']['drupalSettings'] = [
       'pdf' => [
         'workerSrc' => $worker,

Але після додавання патчу ми скоріш за все все одно побачимо помилку на сторінці матеріалу, тим паче якщо в нас vps сервер, котрий ми ще й самі налаштовували. Всіх варіантів не передбачиш та помилки в браузері будуть нам казати, що файл розширеня .mjs не обробляється належним чином.

Для вирішення цієї проблеми в файл  .htaccess достатньо додати строку 

AddType application/javascript .mjs

В разі якщо в нас є тільки Nginx, в файл конфігурації додаємо

types {
    application/javascript mjs;
}

Простий текст

  • Не дозволено жодних HTML теґів.
  • Рядки й абзаци переносяться автоматично.
  • Адреси вебсторінок та адреси електронної пошти автоматично перетворюються у посилання.
Код мови коментаря.