创建具有依赖项的 Bower 项目
Creating bower projects that have dependencies
我正在创建一个 javascript 客户端库,我将通过 Bower 提供该库并依赖于另外两个库,其中一个可通过 Bower (https://github.com/abritinthebay/datejs) and another that is available only via npm (https://github.com/fent/randexp.js) 获得。我担心我图书馆的用户会如何使用它。我的疑虑和恐惧是:
当第二个库只能通过 npm 可用时,我如何将第二个库声明为我的库的依赖项?
用户安装我的库后,he/she 是否必须知道依赖项并手动将相应的 javascript 文件包含在他们的 index.html 中?我知道 grunt-bower-install 解决了这个问题,但我担心那些根本不使用 grunt 的人。
如果我放弃所有这些并将所述库的代码包含在我自己的代码中会不会很糟糕?
(奖励回合):我希望我的图书馆可以作为 AngularJS 服务、node.js 模块和 'normal' javascript 函数。有没有办法只使用一个存储库来实现这一点,或者我必须创建 3 个单独的项目?
1) 如果您希望第二个库可供 bower 包管理系统使用,则需要将其包装在 bower 包中。 npm
完全不同,您不会直接在两者之间共享。
2) 是的,用户需要确保在每个页面上以正确的顺序加载依赖项。 Bower 只是确保您的依赖项已安装且版本正确。
3) 一般来说,我会避免这种情况。它们是具有正交关注点的独立项目。这就是为什么我们一开始就创建了像 bower 这样的包管理器。
奖金:
4) 是的,您可以使用一个存储库实现这一目标。每个包管理服务都需要它们自己的配置文件——但是 bower.json
和 package.json
都位于存储库的根目录并没有错。您只需分别使用 npm
和 bower
分别发布到每个系统。
PS。这应该不止 1 个问题。
我正在创建一个 javascript 客户端库,我将通过 Bower 提供该库并依赖于另外两个库,其中一个可通过 Bower (https://github.com/abritinthebay/datejs) and another that is available only via npm (https://github.com/fent/randexp.js) 获得。我担心我图书馆的用户会如何使用它。我的疑虑和恐惧是:
当第二个库只能通过 npm 可用时,我如何将第二个库声明为我的库的依赖项?
用户安装我的库后,he/she 是否必须知道依赖项并手动将相应的 javascript 文件包含在他们的 index.html 中?我知道 grunt-bower-install 解决了这个问题,但我担心那些根本不使用 grunt 的人。
如果我放弃所有这些并将所述库的代码包含在我自己的代码中会不会很糟糕?
(奖励回合):我希望我的图书馆可以作为 AngularJS 服务、node.js 模块和 'normal' javascript 函数。有没有办法只使用一个存储库来实现这一点,或者我必须创建 3 个单独的项目?
1) 如果您希望第二个库可供 bower 包管理系统使用,则需要将其包装在 bower 包中。 npm
完全不同,您不会直接在两者之间共享。
2) 是的,用户需要确保在每个页面上以正确的顺序加载依赖项。 Bower 只是确保您的依赖项已安装且版本正确。
3) 一般来说,我会避免这种情况。它们是具有正交关注点的独立项目。这就是为什么我们一开始就创建了像 bower 这样的包管理器。
奖金:
4) 是的,您可以使用一个存储库实现这一目标。每个包管理服务都需要它们自己的配置文件——但是 bower.json
和 package.json
都位于存储库的根目录并没有错。您只需分别使用 npm
和 bower
分别发布到每个系统。
PS。这应该不止 1 个问题。