JavaScript包管理器综述
JavaScript包管理器综述
作者:chszs,未经博主同意不得转载。经许可的转载需注明作者和博客主页:http://blog.csdn.net/chszs
对于JavaScript来说。包管理器并非一个新概念,npm和bower是JavaScript的两个最流行的包管理器工具,JavaScript的包管理器还有volo、ringojs、component。这些包管理器相比,npm和bower支持的JavaScript库和模块最多。
volo:http://www.volojs.org/ 。一个基于Node.js的工具,可用于高速创建项目、加入依赖库、自己主动化常见的任务。
ringojs:http://ringojs.org/ ,
Ringo是基于JVM的JavaScript平台。针对server端应用进行了优化。用于开发多线程的JavaScript程序。
Ringo峰值了大量内建的模块,遵循CommonJS标准。Ringo基于Mozilla的Rhino JavaScript引擎。而Rhino JavaScript引擎是JDK 6以上内嵌的脚本引擎。Ringo在Rhino的基础上进行了增强。主要是多线程编程这部分。
rp是RingoJS的包管理器,其目标是为本地RingoJS安装提供简易的包管理,以及在远程包注冊表中公布包。
Component:https://github.com/componentjs/component 。这个包管理器项目已经停止维护了。
Jam:http://jamjs.org/ 。一个JavaScript的包管理器,能够管理依赖、高速载入和模块化,与Bower类似,仅仅管理前端的JavaScript模块。
webpack:http://webpack.github.io/ ,一款开源的模块载入器兼打包工具,它能把各种资源比如JS(含JSX)、coffee、样式(含less/sass)、图片等都作为模块来使用和处理。
jspm:http://jspm.io/ ,是基于SystemJS的Javascript包管理器,是基于动态的ES6模块载入器之上构建的工具。
browserify:http://browserify.org/ ,让开发人员使用类似于Node.js的require()方式来组织浏览器端的JavaScript代码,通过预编译让前端JavaScript能够直接使用Node NPM安装的一些库。
npm主要处理兼容Node.js的JavaScript模块,而Bower聚焦于整个Web平台,能够提供包括模块、脚本、CSS样式表、HTML模板、图片Image、字体的包。
故npm主要用于Node.js开发。bower往往工作于client。
npm和bower使用了互不兼容的组织模式,能够在同一个项目中一起使用,它们使用了不同的元数据文件,npm是package.json。bower是bower.json,并且它们把包安装到不同的文件夹下。
通常使用npm管理server端的包,使用bower管理client的包。
与Java Maven不同。JavaScript的包管理器主要用于查找包、安装包、管理包的版本号。
npm除此之外还提供了简单的build相关和test相关的任务。
使用JavaScript包管理器
1)在安装bower或npm后。在项目根文件夹首先应运行
bower init
npm init
包管理器会询问一些项目设置相关的问题。
一一回答后包管理器就会为项目创建bower.json或package.json配置文档。
2)要搜索可用的包,运行
bower search <关键词>
npm search <关键词>
包管理器会从网络仓库中搜出一堆包列表显示。
3)要安装包,运行
bower install <包名>
npm install <包名>
要安装包的指定版本号。命令语法例如以下:
bower install <包名>#<包版本号>
npm install <包名>@<包版本号>
还能够把项目使用的每个包的版本号信息都保存到项目的元数据文件里。包管理器(包括第三方的包管理器)都能够使用元数据文件来监护client的维护、构建、測试和启动任务。
当然,最佳的方法还是把包的版本号信息保存到项目的元数据配置文件里。使用–save选项。命令语法例如以下:
bower install --save <包名>#<包版本号>
npm install --save <包名>@<包版本号>
JavaScript包管理器综述的更多相关文章
- JavaScript 包管理器 -Yarn
Fast, reliable, and secure dependency management. 官网地址 Github 特性 离线模式:如果您之前下载了软件包,则可以在没有任何互联网连接的情况下安 ...
- Node.js包管理器Yarn的入门介绍与安装
FAST, RELIABLE, AND SECURE DEPENDENCY MANAGEMENT. 就在昨天, Facebook 发布了新的 node.js 包管理器 Yarn 用以替代 npm .咱 ...
- 你需要知道的包管理器(Package Manager)
最近我花了一点时间关注了在不同系统之中所用到的包管理器(Package Manager) .最开始的时候,我是在使用Linux操作系统时,对这种工具以及它背后的想法深深迷恋住了:这真是自由的软件世界. ...
- 【转】包管理器Bower详细讲解
包管理器Bower 今天自己用Angular写东西的时候,下载了Angular-seed项目,发现需要用到bower,之前也使用过,没有仔细了解,今天趁机了解到一些. bower的官网地址: ...
- Bower => 前端开发也有包管理器
摘要: 一直以来npm,pip等各种包管理器好像都和前端开发没什么太大关系,当然因为nodejs的原因可能感觉npm会亲切一些,不过终归不是针对客户端的包管理工作,所以Bower的出现确实让人眼前一亮 ...
- 包管理器Bower使用手冊之中的一个
包管理器Bower使用手冊之中的一个 作者:chszs,转载需注明.博客主页:http://blog.csdn.net/chszs 一.Bower介绍 Bower是一个适合Web应用的包管理器,它擅长 ...
- 包管理器Bower使用手册之一
包管理器Bower使用手册之一 作者:chszs,转载需注明.博客主页:http://blog.csdn.net/chszs 一.Bower介绍 Bower是一个适合Web应用的包管理器,它擅长前端的 ...
- NET Core 静态文件及JS包管理器(npm, Bower)的使用
NET Core 静态文件及JS包管理器(npm, Bower)的使用 文章目录 在 ASP.NET Core 中添加静态文件 使用npm管理JavaScript包 使用Bower管理JavaScri ...
- Node.js包管理器:
Node.js包管理器: 当我们要把某个包作为工程运行的一部分时,通过本地模式获取,如果要在命令行下使用,则使用全局模式安装 使用全局模式安装的包并不能直接在JavaScript文件中用require ...
随机推荐
- Spring配置SessionFactory
1.不用dataSource引入hibernate.cfg.xml <bean id="sessionFactory" class="org.springframe ...
- Linux运维打怪升级篇,从苦逼到牛逼的必备装备(转)
http://chenhao6.blog.51cto.com/6228054/1949673
- offsetWidth clientWidth scrollWidth 三者之间的区别和联系
scrollWidth:对象的实际内容的宽度,不包边线宽度,会随对象中内容超过可视区后而变大. clientWidth:对象内容的可视区的宽度,不包滚动条等边线,会随对象显示大小的变化而改变. off ...
- 【BZOJ3529】【SDOI2014】数表 (莫比乌斯反演+树状数组)
传送门 Description 有一张$n\times m$的数表,其第$i$行第$j$列 $(1≤i≤n,1≤j≤m)$ 的数值为能同时整除$i$和$j$的所有自然数之和.现在给定$a$,计算数表中 ...
- 【POJ3321】Apple Tree(DFS序,树状数组)
题意:给一棵n个节点的树,每个节点开始有一个苹果,m次操作 1.将某个结点的苹果数异或 1 2.查询一棵子树内的苹果数 n,m<=100000 思路:最近一段时间在思考树上统计问题的算法 发 ...
- 【POJ2104】K-th Number(主席树)
题意:有n个数组成的序列,要求维护数据结构支持在线的下列两种操作: 1:单点修改,将第x个数修改成y 2:区间查询,询问从第x个数到第y个之间第K大的数 n<=100000,a[i]<=1 ...
- 【Codevs1034】家园(最大流,裂点)
题意:由于人类对自然的疯狂破坏,人们意识到在大约2300年之后,地球不能再居住了,于是在月球上建立了新的绿地,以便在需要时移民.令人意想不到的是,2177年冬由于未知的原因,地球环境发生了连锁崩溃,人 ...
- 使用 IntelliJ IDEA 开发 Android 应用程序时配置 Allatori 进行代码混淆
IntelliJ IDEA 提供了非常强大的 Android 开发支持,就连 Google 官方推荐的 Android Studio 其实也是 IntelliJ IDEA 的一个 Android 开发 ...
- es6 const let
一.const 1.const 声明的是常量,一旦声明,值将是不可变的: 2.const也具有块级作用域: 3.不能变量提升(必须先声明后使用): 4.const 不可重复声明 5.const 指令指 ...
- (5)DataSet
DataTable赋值给DataSet DataSet ds = new DataSet(); DataTable dt1 = new DataTable(); DataTable dt2 = new ...