Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 鲍尔和NPM是如何结合在一起的?_Javascript_Build_Npm_Bower_Dependency Management - Fatal编程技术网

Javascript 鲍尔和NPM是如何结合在一起的?

Javascript 鲍尔和NPM是如何结合在一起的?,javascript,build,npm,bower,dependency-management,Javascript,Build,Npm,Bower,Dependency Management,作为我问题的序言,我将从Java后端开发人员的角度出发,在这里我们使用Maven来构建。我曾在我们最近开发的服务器端节点项目上进行过测试,但现在我将继续在前端JavaScript客户端上设置测试。我对前端开发不是很精通,这是我第一次尝试 综上所述,我想我将使用以下技术堆栈进行前端测试:Eclipse IDE、Maven构建过程、Mocha测试框架、Chai断言框架、Nock HTTP模拟框架、Sinon模拟/间谍/存根框架、重新布线依赖注入框架。这一切都应该很好,因为这是我们用于节点项目的堆栈,

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

综上所述,我想我将使用以下技术堆栈进行前端测试:Eclipse IDE、Maven构建过程、Mocha测试框架、Chai断言框架、Nock HTTP模拟框架、Sinon模拟/间谍/存根框架、重新布线依赖注入框架。这一切都应该很好,因为这是我们用于节点项目的堆栈,所以我希望前端设置尽可能类似

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

我看到很多人支持鲍尔,但在查看了它的页面和文档后,我仍然没有看到它填补了NPM无法填补的利基。就浏览器依赖管理而言,我看到很多人坚决反对NPM;主要原因是NPM是为服务器端节点项目设计的,而不是为前端空间设计的。但谁在乎呢?不管它最初的设计意图如何,如果它做了我需要它做的事情,那么缺点在哪里

请把这个“问题”当作我是一个完全的新手。经过这一过程和研究,我意识到我对事物前端的知识非常缺乏。话虽如此,请在回答中尽可能具体和透彻。我很乐意分享项目配置等,如果需要的话,以帮助绘制我所在空间的图片。谢谢你的反馈

Bower和NPM的工作方式不同

NPM的功能非常强大,非常出色。然而,在那里你不会发现很多客户端软件包;它们中的大多数都在那里,因为它们也在节点中工作。(例如,下划线.JS和JADE模板引擎。)

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


两者都可以很好地配合。我这样做。:)

传统上,许多web开发项目结合了npm和Bower。npm用于管理后端依赖关系,而Bower用于管理前端依赖关系。事实上,您首先需要使用npm来安装Bower。 虽然鲍尔的优势是引人注目的,但它们现在由其他工具提供,即npm、纱线和网页包。虽然开源项目仍然在维护中,但它的创建者决定反对它,并建议如何迁移到其他解决方案,即Thread和webpack。

我是否可以将所有模块放在同一文件夹“node\u modules”中?它有什么问题?您不应该这样做,因为包名(npm)可能会与组件名(bower)冲突,即“jquery”,这将打乱它们中的任何一个,并导致问题。欢迎提供如何使npm和bower成为同一项目中行为良好的公民的指导!