Модули JavaScript

CMintS использует Модули в стиле Node.js и помогает создать модуляризированный функционал для темы. Все это делается с помощью просмотров

Файлы JavaScript, размещенные в файле theme/js и не начинаются с _, например.: _contextMenu.js компилируются папку public/js.

Рассмотрим:

/* theme/js/_contextMenu.js */
const toggleContextMenu = (buttonElem) =>
{
  const contextMenus = buttonElem.closest(".contextMenu");
  if (contextMenus)
    contextMenus.classList.toggle("visible");
};

module.exports.toggleContextMenu = toggleContextMenu;

И:

/* theme/js/main */
const {toggleContextMenu} = require("./_contextMenu");

document.body.addEventListener("click", (e)=>
{
  toggleContextMenu(e.target);
}, false);

Пример выше будет скомпилирован в public/js/main.js и можно включить в макет темы:

<!DOCTYPE html>
<html lang="<%= page.locale %>">
<head>
  <script src="/js/main.js" defer></script>
</head>
<body>
  ...