Можно ли загрузить нативные дополнения (написанные на C / C ++, как в nodejs) из клиентского JavaScript, используя requireJS или какой-либо другой модуль?
Я пишу приложение nodejs + express, которое обслуживает html-файл, который загружает файлы javascript. Я использую requireJS и собираю эти js-файлы на стороне клиента в модуль AMD. Я могу загружать и вызывать нативные методы из js-скриптов на стороне сервера nodejs и спрашивать, можно ли сделать то же самое из js-скриптов на стороне клиента.
Нет, вы не можете заставить клиента запускать нативное приложение через подобный браузер. Это создаст очень большую дыру в безопасности, которая позволит любому хакеру прийти и выполнить произвольный код насилия на любом клиенте, и это строго запрещено. Вы можете выполнить надстройку C ++ на стороне сервера через API, и это должно решить большинство случаев использования.
RequireJS не является движущим фактором в том, что вы пытаетесь достичь. Возможность загрузки собственного кода зависит исключительно от того, разрешает ли это виртуальная машина JavaScript, на которой выполняется ваш код, или нет. Если виртуальная машина не позволяет этого, RequireJS не может добавить эту возможность.
Вы можете сделать это в Node, потому что Node это позволяет.
Браузеры гораздо более ограничены в том, что они позволяют. Сценарий JavaScript, выполняемый на веб-странице, обычно не может загружать собственный код, поскольку, как объяснил Крис Франклин, это дыра в безопасности.
Один из способов получить функциональность библиотеки C или C ++ для запуска на стороне браузера — использовать что-то вроде Emscripten скомпилировать код C или C ++ в JavaScript.