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

时间:2016-01-07 00:16:46

标签: javascript dependencies bower

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

混淆伴随着我的框架所依赖的其他依赖项。例如,我想将Fastclick.js指定为依赖项,并在我的框架内调用它。

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

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

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

你可以说。如果问题很模糊,我真的不知道我在说什么。不过,任何帮助都会非常感激。

2 个答案:

答案 0 :(得分:1)

做一个

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 repo的人只需做一个bower install,一切都应该开箱即用。

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

希望这有帮助!

答案 1 :(得分:0)

最后,我将整个Fastclick库包含在我正在捆绑的代码中。这是确保它在最终应用程序中首先加载的唯一方法。我可以把它包含在凉亭文件中,最终的应用程序需要按照正确的顺序将它包含在他们的模板中,但这样看起来更安全。