Учебник по Electron.js

Проблемы при подключении библиотеки jQuery

Если опция nodeIntegration имеет значение true, то при подключении библиотеки jQuery с помощью тега <script> получим следующее сообщение об ошибке:

Uncaught ReferenceError: $ is not defined

Проблема заключается в том, что разработчики пытаются подстраиваться под окружение. Если существует объект module, то идентификатор $ не добавляется в глобальную область видимости. При значении опции nodeIntegration равной true, именно так и происходит. Чтобы избежать ошибки, следует перед подключением библиотеки jQuery удалить объект module.exports (листинг 11.1). После подключения jQuery объект module.exports лучше восстановить.

Совет

Если интеграция Node.js не нужна просто присвойте опции nodeIntegration значение false. Возможно интеграции будет достаточно внутри скрипта preload.js (см. листинги 1.1 и 1.4).

Листинг 11.1. Решение проблемы при подключении библиотеки jQuery

<!doctype html>
<html lang="ru">
<head>
   <meta charset="utf-8">
   <meta http-equiv="Content-Security-Policy"
         content="default-src 'self' 'unsafe-inline'">
   <script>
      delete module.exports;
   </script>
   <script src="jquery.min.js"></script>
   <script>
      module.exports = {};
   </script>
   <title>Проблемы при подключении библиотеки jQuery</title>
</head>
<body>
   <h1>Проблемы при подключении библиотеки jQuery</h1>
   <div id="result"></div>
   <script>
      $('#result').html('Привет, мир!');
   </script>
</body>
</html>