Bower和NPM如何配合使用?

16

首先说一下我的问题背景,我是一名Java后端开发人员,我们使用Maven进行项目构建。最近,我参与了一个基于Node.js的服务器端项目的测试工作,现在我要开始在我们的前端JavaScript客户端上设置测试了。我对前端开发并不太熟悉,这真的是我第一次涉足这个领域。

所有这些都可以接受,我计划在前端测试中使用以下技术栈:Eclipse IDE,Maven构建过程,Mocha测试框架,Chai断言框架,Nock HTTP模拟框架,Sinon模拟/间谍/存根框架,Rewire依赖注入框架。这些都应该没什么问题,因为这就是我们在Node项目中使用的堆栈,我想尽可能使前端设置保持类似。

然而,这就是我的知识极限所在,我无法理解我们的Node项目和前端JavaScript项目之间的依赖管理差异。我看不出为什么我不能继续使用NPM并将其集成到我们的Maven构建中来处理依赖关系和安装。

我看到许多人支持Bower,但在查看了它的页面和文档后,我仍然没有看出它填补了NPM无法填补的空缺。我看到很多人坚决反对使用NPM来处理浏览器依赖关系,主要原因是NPM是为服务器端Node项目设计的,并不适用于前端领域。但这有什么关系呢?无论其初始设计意图如何,如果它可以满足我的需求,那么哪里是缺点呢?

请将我的“问题”视为一个完全新手的问题。随着我在这个过程中进行研究,我已经意识到我在前端方面缺乏大量知识。因此,请尽可能具体和详细地回答问题。如有需要,我很乐意分享项目配置等信息,以帮助描述我所处的环境。感谢任何反馈!

2个回答

17

Bower和NPM确实有不同之处。

NPM非常强大,并且在其领域表现出色。然而,你不会在其中找到很多面向客户端的包;大多数包都存在于其中是因为它们也能在Node中使用。(例如,Underscore.JS和JADE模板引擎。)

这就是为什么有Bower,其中包含了大部分面向客户端的包。它拥有许多jQuery插件、模板引擎、CSS框架等等。不要期望在NPM中找到这样的包。

你可以同时使用两者。我就是这样做的。 :)


我可以把所有的模块放在同一个文件夹“node_modules”中吗?这样做会有什么问题吗?http://stackoverflow.com/questions/18012291/what-is-the-best-way-tools-to-organize-javascript-code-that-runs-on-client-and-o - Totty.js
3
不推荐这样做,因为软件包名称(npm)可能与组件名称(bower)冲突,例如"jquery",这会影响其中一个并引起问题。 - Artur Bodera
有关如何使NPM和Bower成为同一项目的良好组成部分,欢迎任何指导建议! - Erik Kaplun

0

传统上,许多Web开发项目都结合使用npm和Bower。npm用于管理后端依赖项,而Bower用于前端依赖项。实际上,您需要先使用npm才能安装Bower。 尽管Bower的优点很有吸引力,但现在其他工具(即npm、Yarn和webpack)提供了它们。虽然这个开源项目仍在维护,但其创建者决定弃用它,并建议如何迁移到其他解决方案,即Yarn和webpack。 更多解释


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接