【问题标题】:How to include sub-dependencies in a Bower repository如何在 Bower 存储库中包含子依赖项
【发布时间】:2016-01-07 00:16:46
【问题描述】:

我正在创建一个基本的 JS 框架,我将上传到 Github 并希望创建一个 bower 包,以便我可以使用 Bower 将它安装在我的其他项目中。我以前从未这样做过,但我可能会解决这个问题。

混乱来自我的框架所依赖的其他依赖项。例如,我想将 Fastclick.js 指定为依赖项,并像这样在我的框架中调用它。

window.addEventListener('load', function() {
    FastClick.attach(document.body);
}, false);

所以我的问题是我应该怎么做?我假设我没有在我编译的“/dist”文件夹中包含 Fastclick 库,并且我可以在我的 Bower 文件中指定它,这样当有人安装我的框架时,他们将获得正确版本的 Fastclick?如果是这种情况,那么我如何确保他们在我的库之前加载库?我无法控制他们的 HTML 或加载脚本的顺序。

我可以将 Fastclick 代码复制并粘贴到我的库中,这当然是一种选择,但我觉得必须有更好的方法来做到这一点。我的大脑告诉我,要正确执行它需要某种 JS 模块加载系统。

如你所知。如果问题很模糊,我真的不知道我在说什么,所以很抱歉。任何帮助将不胜感激。

【问题讨论】:

    标签: javascript dependencies bower


    【解决方案1】:

    做一个

    bower install --save <library-name> // in your case Fastclick.
    

    这将创建一个 bower.json 文件,或使用库更新它。它现在也应该保存在bower_components/

    现在转到bower_components/&lt;library-name&gt; 并查看要包含到项目中的文件。例如,在 bower.json of FastClick 中,您似乎需要包含 lib/fastclick.js 才能获得该功能。

    所以要使用该库,在项目的 index.html 中,您需要在以下行中添加一个脚本标记:

    &lt;script src="bower_components/FastClick/lib/fastclick.js"&gt;&lt;/src&gt;

    现在你已经完成了!

    克隆您的 git 存储库的任何人只需执行 bower install,一切都应该开箱即用。

    您不需要检查 bower_components 文件夹,只需要检查 bower.json 文件,该文件可用于安装所有依赖项。

    希望这会有所帮助!

    【讨论】:

    • 感谢您抽出宝贵时间回复。不幸的是,我没有 index.html 文件,因为我只是在制作一个 JS 文件,所以我无法控制加载的脚本。我一直在研究某种模块加载系统是否对我有帮助,但这很复杂。
    【解决方案2】:

    最后,我只是在捆绑的代码中包含了整个 Fastclick 库。这是确保它首先在最终应用程序中加载的唯一方法。我本可以将它包含在 bower 文件中,最终应用程序需要以正确的顺序将它包含在模板中,但这种方式似乎更安全。

    【讨论】:

      猜你喜欢
      • 2019-10-09
      • 1970-01-01
      • 2015-12-17
      • 2014-04-24
      • 1970-01-01
      • 1970-01-01
      • 2014-04-04
      • 2023-03-30
      相关资源
      最近更新 更多