gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:16:54 24 4
gpt4 key购买 nike

我在 bower 上遇到了一个复杂的架构问题.我正在构建一个在线平台,用户可以在其中使用包含 JS 代码的动态小部件创建页面。这些小部件有预定义的格式、描述、图标等,它们将打包成存档(如 apk 的、war 的、jar 的、ear 的,但带有前端代码)。当网站已部署时,用户将能够动态添加小部件。

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

简化的目录布局如下:

  • bower.json
  • gulpfile.js(用于建站)
  • bower_components # 我们自己的部门 + 来自所有小部件的部门
  • 小部件
    • widget1 # 这里可以是任何名字
    • 小部件2
    • 小部件随机
    • another-widget # 布局上面的每个小部件都是一样的
      • bower.json(或类似 dependencies.json 的简化版本,它只包含依赖项列表)。
      • 许多其他文件

小部件上传后,bower.json 应该与其他小部件的所有 dep 合并,gulp build将运行并重建整个东西。

如何将所有 bower.json 合并为一个?特别是当有两次相同的依赖时,例如一个小部件取决于 "jquery": "<=2.1.0"另一个小部件取决于 "jquery": "^2.1.0" .它们都是兼容的,但我应该在 bower.json 中写什么字符串?如果我写两个 bower 只使用第二个并将安装最新的 jquery - 2.1.1这已经与第一个小部件不兼容。这是一个更简单的用例。

我们实际上可以假设不会有所有可能的 semver 规范变体,比如 <=例如。我也可以强制小部件编写者使用我自己的依赖项规范,但我想不出如何设计它。

感谢任何帮助!

小部件依赖性解决方案的其他方法已被接受,但请注意:它们不能拥有自己的库版本,因为在运行时会加载多个小部件。例如,我不能同时拥有两个 jquery,因为两个小部件使用了上面示例中的规范。

UPD:我知道 RequireJS,而且我正在实际使用它。但是,首先,我需要下载依赖项本身,以便稍后将其与 RequreJS 一起使用。

最佳答案

解决方案如下:

每个小部件本身都是一个带有 bower.json 的 bower 包;项目的 bower.json 重命名为 bower-base.json 并且 bower.json 是从 bower-base.json 生成的,所有小部件都添加到 dependencies 属性。然后 Bower 自动处理小部件的依赖项。

关于javascript - 以自动方式合并多个 bower.json 依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27114000/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com