当前位置: 首页 > news >正文

NPM vs Bower 的区别

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

众所周知,npm(Node Package Manager)是nodejs时代不可或缺的最好的包管理器,现在已经随nodejs官方包同时会安装到你的设备上去。只要给项目书写好package.json放于项目根目录,在重新部署之时只需要执行 

npm install

一行简单的命令,所有相关的依赖就能够自动安装到项目目录下面,并且还能很方便的对不同项目的不同依赖包版本进行良好、统一的管理。

关于NPM的具体使用已经不需更多赘述,可以自行参考这篇文章 http://www.infoq.com/cn/articles/msh-using-npm-manage-node.js-dependence

 

重点来说说NPM和Twitter推出的名为 Bower 的包管理器之间到底有什么样的关系和区别呢?(Bower的官网写到,Bower 是 "A package manager for the web" ,难道说NPM就不是了嘛)。

其实,在实际项目中,NPM和Bower都会被运用进去。并且Bower的安装和升级全都依赖于NPM,使用如下命令就可以全局安装Bower

npm install -g bower

之后你就可以使用

bower install [#]

类似于NPM的方式,对于当前项目进行前端依赖的相关管理。使用起来和NPM一样方便快捷。

其中,与NPM最大的区别在于,NPM主要运用于Node.js项目的内部依赖包管理,安装的模块位于项目根目录下的node_modules文件夹内。而Bower大部分情况下用于前端开发,对于CSS/JS/模板等内容进行依赖管理,依赖的下载目录结构可以自定义。

有人可能会问,为何不用NPM一个工具对前后端进行统一的依赖管理呢? 实际上,因为npm设计之初就采用了的是嵌套的依赖关系树,这种方式显然对前端不友好;而Bower则采用扁平的依赖关系管理方式,使用上更符合前端开发的使用习惯。

不过,现在越来越多出名的js依赖包可以跨前后端共同使用,所以Bower和NPM上面有不少可以通用的内容。实际项目中,我们可以采用NPM作用于后 端;Bower作用于前端的组合使用模式。让前后端公用开发语言的同时,不同端的开发工程师能够更好地利用手上的工具提升开发效率。

   

         

       



转载于:https://my.oschina.net/u/2002748/blog/422482

相关文章:

  • yii 10.16
  • Android开发模板------自己定义SimpleCursorAdapter的使用
  • 代码html
  • Php5.5新特性 Generators详解
  • js修改后没反应-看看是不是取的缓存
  • 新时代的“网盘模型”——够快云库
  • ADT下载地址整理(转)
  • IntelliJ IDEA 使用心得与常用快捷键
  • asp.net Session 一般设置
  • iOS UITableView的Section Footer添加按钮
  • 南邮算法分析和实验设计1 分而治之
  • OpenStack对象存储——Swift
  • PHP生成缩略图、加水印
  • C语言中的单引号和双引号含义
  • 《Java从入门到精通》第七章学习笔记
  • __proto__ 和 prototype的关系
  • Android系统模拟器绘制实现概述
  • Apache的80端口被占用以及访问时报错403
  • axios 和 cookie 的那些事
  • C++类的相互关联
  • conda常用的命令
  • CSS实用技巧干货
  • Django 博客开发教程 16 - 统计文章阅读量
  • Java读取Properties文件的六种方法
  • orm2 中文文档 3.1 模型属性
  • Python打包系统简单入门
  • React Transition Group -- Transition 组件
  • Sublime text 3 3103 注册码
  • TypeScript实现数据结构(一)栈,队列,链表
  • vue2.0一起在懵逼的海洋里越陷越深(四)
  • 阿里研究院入选中国企业智库系统影响力榜
  • 聊一聊前端的监控
  • 七牛云 DV OV EV SSL 证书上线,限时折扣低至 6.75 折!
  • 腾讯视频格式如何转换成mp4 将下载的qlv文件转换成mp4的方法
  • 腾讯优测优分享 | 你是否体验过Android手机插入耳机后仍外放的尴尬?
  • - 转 Ext2.0 form使用实例
  • 【干货分享】dos命令大全
  • 资深实践篇 | 基于Kubernetes 1.61的Kubernetes Scheduler 调度详解 ...
  • ​软考-高级-系统架构设计师教程(清华第2版)【第9章 软件可靠性基础知识(P320~344)-思维导图】​
  • #Linux杂记--将Python3的源码编译为.so文件方法与Linux环境下的交叉编译方法
  • #我与虚拟机的故事#连载20:周志明虚拟机第 3 版:到底值不值得买?
  • (3)选择元素——(17)练习(Exercises)
  • (待修改)PyG安装步骤
  • (第二周)效能测试
  • (二)c52学习之旅-简单了解单片机
  • (附源码)python房屋租赁管理系统 毕业设计 745613
  • (附源码)ssm高校升本考试管理系统 毕业设计 201631
  • (算法)前K大的和
  • (转)nsfocus-绿盟科技笔试题目
  • (转)一些感悟
  • .net 8 发布了,试下微软最近强推的MAUI
  • .NET CORE使用Redis分布式锁续命(续期)问题
  • .NET NPOI导出Excel详解
  • .net 程序发生了一个不可捕获的异常
  • .net 使用ajax控件后如何调用前端脚本