Как размножается библиотека JavaScript с помощью веб-компонентов?
Как человек, который пытался найти способ помочь авторам контента разрабатывать и поддерживать большие веб-сайты путем создания (HTML) компонентов в течение многих лет, я очень рад видеть, что веб-компоненты набирают популярность на w3c, google и mozilla. Но мне кажется, что в спецификациях нет мер против раздувания библиотеки javascript.
Скажи, что я разрабатываю компонентA
который имеет зависимость дляunderscore.js
и хочу использовать компонентыB
а такжеC
которые имеют зависимости отlodash.js
версия 1. * и т. д.
Я не вижу способа помечать зависимости и версии библиотек. Это может привести к огромному скоплению библиотек, когда мы говорим о веб-сайтах с несколькими командами и заинтересованными сторонами.
Текущее решение заключается в стандартизации структуры оптового клиента для всего веб-сайта во всем мире. Это сложно, когда вы вложили значительные ресурсы в различные серверные инфраструктуры, такие какLifeRay
(Ява),EpiServer
(.сеть),Django
(python) и т. д. каждый с предпочтительными библиотеками на стороне клиента.
Я рассматриваю веб-компоненты как средство для отделения серверных платформ от клиентского кода, но упущение обработки зависимостей на стороне клиента вызывает беспокойство.
Это в спецификациях, и я пропустил это, или есть стратегия, чтобы смягчить эту проблему, о которой я не знаю?
[НАЗНАЧЕННЫЕ БИБЛИОТЕКИ ПРОСТО ПРИМЕРЫ. ВОПРОС АГНОСТИЧЕСКИ ДЛЯ РАМКИ, БИБЛИОТЕКИ И СТОРОННЕГО ЯЗЫКА]
ОБНОВИТЬ Спасибо всем за ответы. Я удивлен, никто не упомянулMozilla X-Tag или жеGoogle Polymer который был всем обманом в последнее время. Я полностью согласен с идеей теневого DOM, стилями областей действия, пользовательскими элементами и т. Д., Но нигде не вижу упоминаний о том, как работать с зависимостями JavaScript. Как правильно пишет @ Daniel-BauligHTML импорт не упоминает JavaScript вообще. Я признаю, что на этот вопрос почти невозможно ответить. Тем не менее, я думаю, что @ Daniel-Bailig подошел ближе всего, когда упомянул модули ES6. Я лично думаю, что мы найдем устойчивое решение где-то между модулями ES6 и require.js.