如何在 Bower 存储库中包含子依赖项

How to include sub-dependencies in a Bower repository

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

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

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

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

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

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

做一个

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

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

现在转到 bower_components/<library-name> 并查看要包含到项目中的文件。例如,从 bower.json of FastClick 来看,您似乎需要包含 lib/fastclick.js 才能实现功能。

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

<script src="bower_components/FastClick/lib/fastclick.js"></src>

大功告成!

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

你不需要签入bower_components文件夹,只需要签入bower.json文件,它可以用来安装所有的依赖。

希望对您有所帮助!

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