【问题标题】:How do Bower and NPM couple together?Bower 和 NPM 如何结合在一起?
【发布时间】:2013-04-13 00:23:22
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: javascript build npm bower dependency-management


    【解决方案1】:

    Bower 和 NPM 工作方式不同。

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

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

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

    【讨论】:

    • 我可以将所有模块放在同一个文件夹“node_modules”中吗?它有什么问题? stackoverflow.com/questions/18012291/…
    • 您不应该这样做,因为包名称 (npm) 可能与组件名称 (bower) 发生冲突,即“jquery”,这会扰乱其中任何一个并导致问题。
    • 欢迎任何关于如何使 NPM 和 Bower 成为同一个项目中表现良好的公民的指针!
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-01-26
      • 2022-01-23
      • 1970-01-01
      • 1970-01-01
      • 2014-04-06
      • 2014-03-20
      • 1970-01-01
      相关资源
      最近更新 更多