我正在创建一个基本的JS框架,我将上传到Github并希望创建一个bower软件包,以便我可以使用Bower在其他项目中安装它。我之前从未这样做过,但我可能会解决这个问题。
混淆伴随着我的框架所依赖的其他依赖项。例如,我想将Fastclick.js指定为依赖项,并在我的框架内调用它。
window.addEventListener('load', function() {
FastClick.attach(document.body);
}, false);
所以我的问题是我应该怎么做?我假设我没有在我编译的" / dist"中包含Fastclick库。文件夹,我可以在我的Bower文件中指定它,这样当有人安装我的框架时,他们会得到正确版本的Fastclick?如果是这样,那么我如何确保他们在我的图书馆之前加载图书馆?我无法控制他们的HTML或加载脚本的顺序。
我可以将Fastclick代码复制并传递到我的库中,这当然是一种选择,但我觉得必须有更好的方法来做到这一点。我的大脑告诉我,要做到这一点,需要某种JS模块加载系统。
你可以说。如果问题很模糊,我真的不知道我在说什么。不过,任何帮助都会非常感激。
答案 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库包含在我正在捆绑的代码中。这是确保它在最终应用程序中首先加载的唯一方法。我可以把它包含在凉亭文件中,最终的应用程序需要按照正确的顺序将它包含在他们的模板中,但这样看起来更安全。