Я пишу стороннее приложение JS с использованием requireJS, и я хочу, чтобы глобальное пространство имен было чистым от всего, кроме единственного объекта глобального интерфейса, который будет создан моим приложением. У меня не было никаких проблем с этим, кроме requireJS.Как можно исключить функции JS из глобального пространства имен?
В качестве опции для оптимизатора require.js можно вставить в конструкцию, а можно определить пространство имен, чтобы сделать область оптимизатора всеми ссылками на требуемые функции для этого пространства имен.
например. require (...) становится my_scope.require (...)
Проблема в том, что этот глобальный объект пространства имен не будет существовать, пока он не будет создан в приложении. Оптимизатор гарантирует, что requireJS load & выполняет перед любым из кода, который он загружает, поэтому, когда приходит время для выполнения функции require (например, require или define), генерируется исключение (объект пространства имен не определен).
Неужели кто-нибудь успешно это сделал, не изменяя вручную скрипт или запуская другой скрипт отдельно от и до встроенного скрипта? Другими словами, есть ли правильный способ достичь этого?
К сожалению, даже загрузка require.js добавляет функции requireJS к GNS. Загрузка не-AMD-скриптов через require также не обеспечивает хороший способ поддерживать рост GNS. –