[英]Merge multiple bower.json dependencies in automated way
bower
我有一个复杂的建筑问题。 我正在构建一个在线平台,用户使用包含JS代码的动态小部件创建页面。 这些小部件具有预定义的格式,描述,图标等,它们将打包成存档(如apk,战争,jar,耳朵,但前端代码)。 用户将能够在部署网站时动态添加小部件。
我们正在使用bower
,问题如下:小部件也应该能够指定他们的bower
依赖关系。
简化的目录布局如下:
在上传小部件之后,bower.json应该与来自其他小部件的所有deps合并,gulp gulp build
将运行并重建整个事物。
如何将所有bower.json合并为一个? 特别是当存在相同的依赖性两次时,例如一个小部件依赖于"jquery": "<=2.1.0"
而另一个小部件依赖于"jquery": "^2.1.0"
。 它们兼容,但我在bower.json中写了什么字符串? 如果我写两个bower只使用第二个并将安装最新的jquery - 2.1.1
已经与第一个小部件不兼容。 这是一个更简单的用例。
我们实际上可以假设不会有所有可能的semver规范变化,例如<=
。 我也可以强制widget-writer使用我自己的依赖规范,但我想不出如何设计它。
任何帮助表示赞赏!
接受了小部件依赖解决方案的其他方法,但请注意:它们不能拥有它们自己的lib版本,因为在运行时会加载多个小部件。 我不能同时拥有两个jqueries,例如,因为两个小部件使用上面示例中的规范。
UPD:我知道RequireJS,我实际上正在使用它。 但是,首先,我需要下载依赖项本身,以便稍后我可以将它与RequreJS一起使用。
解决方案如下:
每个小部件本身都是一个凉亭包,它的bower.json; 项目的bower.json被重命名为bower-base.json,bower.json是从bower-base.json生成的,所有小部件都添加到dependencies属性中。 然后bower自动处理小部件的依赖项。
有没有理由要用凉亭来完成? Bower并非真正用于运行时依赖性。 为此,你想使用RequireJS之类的东西。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.