Загрязняет ли скомпилированный AngularDart глобальную область видимости или переопределяет стандартные объекты браузера?
Я ищу структуру, которая позволит мне написать SPA и встраиваемую библиотеку. Я хотел бы иметь возможность разделить компонент между обоими. Поэтому я ищу решение, которое имеет относительно небольшое количество потенциальных конфликтов с другими платформами и с AngularDart само по себе. Включая случай, когда библиотека была включена с помощью вкладки скрипта, да две версии AngularDart на одной странице. Среда с меньшим количеством глобальных объектов, без переопределений стандартных объектов, без обработки глобальных событий и с ограниченными конфликтами полизаполнения.
Dart и AngularDart демонстрируют то, что мне нужно, но мне также нужны дополнительные детали и документы для проверки моих предположений. Все, на что вы можете указать, будет очень полезно и высоко ценится (проблемы, PR, блоги, дорожная карта, коммиты, спецификации, документы)
Можно запустить несколько приложений AngularDart на одной странице. Я протестировал пример приложения AngularDart todo, встроенного в себя. Но мне нужно больше подробностей о том, что делает dart2js и как компилятор избегает загрязнения глобальной области видимости.
1 ответ
Да, AngularDart должен хорошо соответствовать вашим требованиям.
Сам по себе Dart вообще не должен загрязнять вашу область видимости, вы можете попробовать запустить dart2js на чем-то тривиальном (например, просто напечатать внутри main) и проверить код - он создает замыкание и выполняет его, поэтому ничего внутри не доступно извне. Также нет исправлений каких-либо глобальных объектов JS, так что вы можете запускать его вместе с чем угодно без помех. Если это не так, сообщите об ошибке.
Вы можете запустить столько приложений AngularDart на одной странице, сколько пожелаете. Чтобы полностью изолировать их, вы можете скомпилировать каждый из них по отдельности с помощью dart2js, тогда они не смогут получить доступ ни к какому другому внутреннему устройству.