作为多年来一直试图通过创建 (HTML) 组件来帮助内容作者开发和维护大型网站的人,我真的很高兴看到 Web 组件在 w3c、google 和 mozilla 中获得关注。但在我看来,规范中没有针对 javascript 库膨胀的措施。
假设我开发A
的组件依赖于underscore.js
并想要使用组件B
,C
并且依赖于lodash.js
版本 1.* 等。
我看不到任何标记依赖项和库版本的方法。当我们谈论具有多个团队和利益相关者的网站时,这可能会导致图书馆的巨大膨胀。
当前的解决方案是在全球范围内对整个网站的批发客户端框架进行标准化。当您在不同的服务器端框架(如LifeRay
(java)、EpiServer
(.net)、Django
(python)等)中投入大量资源时,这很困难,每个框架都有首选的客户端库。
我认为 Web 组件是一种将服务器端框架与客户端代码分离的手段,但客户端依赖处理的遗漏令人担忧。
是在规范中但我错过了它,还是有缓解这个问题的策略,我不知道?
[提到的图书馆只是例子。问题与框架、库和服务器端语言无关]
更新 感谢大家的回答。我很惊讶没有人提到最近大肆宣传的Mozilla X-Tag或Google Polymer 。我完全接受了影子 DOM、范围样式、自定义元素等的想法,但我没有看到任何关于如何处理 JavaScript 依赖项的提及。正如@Daniel-Baulig 正确编写的那样,HTML Imports根本没有提到 JavaScript。我承认这个问题几乎不可能回答。然而,当@Daniel-Bailig 提到 ES6 模块时,我认为他是最接近的。我个人认为我们会在 ES6 Modules 和 require.js 之间找到一个可持续的解决方案。