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

最新文章

  1. 使用JS,获取URL中指定参数的值
  2. iOS App 获取从后台返回前台时的页面
  3. EF里一对一、一对多、多对多关系的配置
  4. HT图形组件设计之道(一)
  5. SQL数据库基本语句
  6. 用MySQL log调试程序
  7. jquery获取标签内容,编辑内容
  8. Helpers\Pagination
  9. IDX爱定客 | 氪加
  10. Copy_on_write的简单实现
  11. 分享一款简单好用的HTML拼接工具
  12. TCP发送源码学习(1)--tcp_sendmsg
  13. git 撤回放到暂存区的文件
  14. 【算法】LeetCode算法题-Reverse Integer
  15. 用ASPOSE.Cells将HTML表格存为Excel
  16. centos 7怎么通过图形界面来配置静态ip
  17. Android 给TextView中的字体加上“中间线”
  18. 跟bWAPP学WEB安全(PHP代码)--PHP代码注入
  19. java的代理(编程思想)
  20. IE8 兼容CSS3 使用 PIE.htc

热门文章

  1. Linux基础之Linux简介
  2. 【Luogu】P2447外星千足虫(高斯消元)
  3. fish shell安装和配置
  4. BZOJ 2806 [Ctsc2012]Cheat ——后缀自动机 单调队列优化DP
  5. Spring配置SessionFactory
  6. Python图像处理库PIL从入门到精通
  7. sharpwebmail邮件管理系统开源 下载及使用方法
  8. 关于 ajax 动态返回数据 css 以及 js 失效问题(动态引入JS)
  9. mybatis传入map参数,map中包含list(输入参数)
  10. 彻底搞定C指针-函数名与函数指针【转】