Как кто-то, кто пытался найти способ помочь контенту, авторы разрабатывают и поддерживают большие веб-сайты, создавая (HTML) компоненты в течение многих лет, я очень рад видеть, что веб-компоненты набирают силу в w3c, google и mozilla. Но мне кажется, что нет никаких мер против разрастания библиотеки JavaScript в спецификациях.Как разброс библиотеки JavaScript с помощью веб-компонентов?
Сказать, что я разрабатываю компонент A
, который имеет зависимость для underscore.js
и хочу использовать компоненты B
и C
, которые имеют зависимость от lodash.js
версии 1. * и т.д.
я не вижу какой-либо способ зависимостей флага и библиотеки версии. Это может привести к огромному разрастанию библиотеки, когда мы говорим о веб-сайтах с несколькими командами и держателями акций.
Текущее решение - стандартизировать опционную клиентскую структуру для всего веб-сайта по всему миру. Это сложно, если вы вложили значительные ресурсы в различные серверные среды, такие как LifeRay
(java), EpiServer
(.net), Django
(python) и т. Д., Каждый из которых имеет предпочтительные библиотеки на стороне клиента.
Я вижу веб-компоненты как средние, чтобы отделить серверные рамки от клиентского кода, но упущение обработки зависимостей на стороне клиента вызывает беспокойство.
Является ли он спецификацией, и я пропустил его, или существует стратегия для смягчения этой проблемы, о которой я не знаю?
[БИБЛИОТЕКИ, УКАЗАННЫЕ, ПРОСТО ПРИМЕРЫ. ВОПРОС агностик к рамочным, библиотека и Серверный LANGUAGE]
UPDATE Спасибо всем за ответы. Я удивлен, что никто не упоминает Mozilla X-Tag или Google Polymer, который был в последнее время шумихой. Я полностью покупаю идею теневого DOM, облачных стилей, пользовательских элементов и т. Д., Но нигде я не вижу упоминаний о том, как обращаться с зависимостями JavaScript. Как правильно пишет Даниэль-Баулиг, HTML Imports не упоминает JavaScript вообще. Я признаю, что этот вопрос почти невозможно ответить. Тем не менее, я думаю, что @ Daniel-Bailig подошел ближе, когда он упомянул модули ES6. Я лично считаю, что мы найдем устойчивое решение где-то между модулями ES6 и require.js.
Слишком плохой компилятор и закрывающая библиотека закрытия не снимали столько, сколько jQuery и это библиотека пользовательского интерфейса. С этим намного сложнее начать, и компоненты пользовательского интерфейса выглядят не так хорошо, не так хорошо документированы и сложнее в использовании. Выгода заключается в том, что они лучше разработаны и неиспользуемый код скомпилирован, поэтому независимо от того, сколько библиотек вы добавите, вы скомпилируете весь код, который не используется. Я думаю, что очень плохой дизайн для добавления библиотеки каждый раз, когда вам нужен какой-либо компонент пользовательского интерфейса, или вы хотите скопировать и вставить какой-то скрипт, который зависит от библиотеки, но, к сожалению, это происходит очень часто. – HMR
Я действительно не понимаю, какие веб-компоненты имеют отношение к общей проблеме зависимостей между библиотекой и средой. Веб-компоненты не решают нигде близко ко всем проблемам, которые необходимо решить при создании веб-приложения. – Pointy
И ** BANG ** статический анализ того, какие модули, которыми использует ваш передний конец, возможны с модулями ES6: http://exploringjs.com/es6/ch_modules.html#leanpub-auto-design-goals По крайней мере сейчас, весь команда, компания, знает, что они используют. – dotnetCarpenter