JavaScript包管理器综述

对于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平台,针对服务器端应用进行了优化,用于开发多线程的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往往工作于客户端。

npm和bower使用了互不兼容的组织模式,可以在同一个项目中一起使用,它们使用了不同的元数据文件,npm是package.json,bower是bower.json,而且它们把包安装到不同的目录下。通常使用npm管理服务器端的包,使用bower管理客户端的包。

与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 <包名>@<包版本>

还可以把项目使用的每一个包的版本信息都保存到项目的元数据文件中,包管理器(包括第三方的包管理器)都可以使用元数据文件来监护客户端的维护、构建、测试和启动任务。

当然,最佳的方法还是把包的版本信息保存到项目的元数据配置文件中,使用–save选项,命令语法如下:

相关推荐