繁体   English   中英

以自动方式合并多个bower.json依赖项

[英]Merge multiple bower.json dependencies in automated way

bower我有一个复杂的建筑问题。 我正在构建一个在线平台,用户使用包含JS代码的动态小部件创建页面。 这些小部件具有预定义的格式,描述,图标等,它们将打包成存档(如apk,战争,jar,耳朵,但前端代码)。 用户将能够在部署网站时动态添加小部件。

我们正在使用bower ,问题如下:小部件也应该能够指定他们的bower依赖关系。

简化的目录布局如下:

  • bower.json
  • gulpfile.js(用于网站建设)
  • bower_components#我们自己的deps + deps来自所有小部件
  • 小部件
    • widget1#这里有任何名字
    • WIDGET2
    • 小部件随机
    • 另一个小部件#布局上方的每个小部件都是相同的
      • bower.json(或者像dependencies.json这样只包含依赖项列表的简化版本)。
      • 许多其他文件

在上传小部件之后,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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM