16

因此,作为我的问题的序言,我来自 Java 后端开发人员的角度,我们使用 Maven 进行构建。我曾在我们最近开发的一个服务器端 Node 项目上进行测试,但现在我将继续在我们的前端 JavaScript 客户端上设置测试。我对前端开发不是很精通,这确实是我第一次涉足该领域。

说了这么多,我想我将使用以下技术栈进行前端测试:Eclipse IDE、Maven 构建过程、Mocha 测试框架、Chai 断言框架、Nock HTTP 模拟框架、Sinon 模拟/间谍/stubbing 框架,Rewire 依赖注入框架。一切都应该没问题,因为这是我们用于 Node 项目的堆栈,所以我希望前端设置尽可能相似。

所以,这就是我的知识崩溃的地方。我似乎无法理解我们的 Node 项目和我们的前端 JavaScript 项目在依赖管理方面的区别。我不明白为什么我不会继续使用集成到我们的 Maven 构建中的 NPM 来处理依赖项管理和安装。

我看到很多人提倡 Bower,但是在查看了它的页面和文档之后,我仍然没有看到它填补了 NPM 所没有的利基市场。就浏览器依赖管理而言,我看到很多对 NPM 的坚决拒绝;主要原因是 NPM 是为服务器端 Node 项目设计的,而不是为前端空间设计的。但谁在乎?不管它最初的设计意图如何,如果它完成了我需要它做的事情,那么缺点在哪里?

请像我是一个完整的新手一样处理这个“问题”。在经历了这个过程和研究后,我意识到我对前端方面的知识非常缺乏。话虽如此,请在您的答案中尽可能具体和彻底。我很乐意根据需要分享项目配置等,以帮助描绘我所在的空间。感谢您的任何反馈!

4

2 回答 2

17

Bower 和 NPM的工作方式不同。

NPM非常强大,并且非常擅长它的工作。但是,您不会在其中找到很多客户端软件包。它们中的大多数都在那里,因为它们也在 Node 中工作。(例如,Underscore.JS 和 JADE 模板引擎。)

这就是您拥有Bower的原因,它拥有大多数客户端软件包。它有很多 jQuery 插件、模板引擎、CSS 框架等。不要指望在 NPM 中找到这样的包。

两者都可以正常工作。我这样做。:)

于 2013-04-22T12:36:41.570 回答
0

传统上,许多 Web 开发项目结合了 npm 和 Bower。npm 用于管理后端依赖,而 Bower 用于管理前端依赖。事实上,您首先需要使用 npm 来安装 Bower。尽管 Bower 的优势非常引人注目,但它们现在由其他工具提供,即 npm、Yarn 和 webpack。虽然开源项目仍在维护,但它的创建者决定弃用它,并建议如何迁移到其他解决方案——即 Yarn 和 webpack。 更多解释

于 2020-06-30T07:53:24.220 回答