我正在创建一个javascript客户端库,我将通过Bower提供它,并依赖于另外两个库,一个可以通过Bower(https://github.com/abritinthebay/datejs)获得,另一个只能通过npm({{3 }})。我担心我的图书馆用户会如何使用它。我的疑虑和恐惧是:
如果只能通过npm提供第二个库作为我的库的依赖项?
用户安装我的库后,他/她是否必须知道依赖项并在index.html中手动包含相应的javascript文件?我知道grunt-bower-install解决了这个问题,但是我关心那些甚至根本不使用咕噜声的人。
如果我放弃所有这些并在我自己的代码中包含所述库的代码会不会很糟糕?
(奖励回合):我希望我的库可以作为AngularJS服务,作为node.js模块使用,也可以作为普通的' javascript函数。有没有办法让我只用一个存储库来实现这个目标,还是我必须创建3个独立的项目?
答案 0 :(得分:1)
1)如果您希望第二个库可供凉亭包管理系统使用,则需要将第二个库包装在凉亭包中。 npm
是完全不同的,你不会直接在两者之间分享。
2)是的,用户需要确保在每个页面上以正确的顺序加载依赖项。 Bower只是确保您的依赖项已安装并且版本正确。
3)一般来说,我避免这样做。他们将项目与正交问题分开。这就是为什么我们开始创建像bower这样的包管理器。
加成:
4)是的,您可以使用一个存储库来实现此目的。每个包管理服务都需要自己的配置文件 - 但是bower.json
和package.json
都位于存储库的根目录下没有任何问题。您只需分别使用npm
和bower
分别发布到每个系统。
PS。这应该是一个以上的问题。