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包管理器综述的更多相关文章

  1. JavaScript 包管理器 -Yarn

    Fast, reliable, and secure dependency management. 官网地址 Github 特性 离线模式:如果您之前下载了软件包,则可以在没有任何互联网连接的情况下安 ...

  2. Node.js包管理器Yarn的入门介绍与安装

    FAST, RELIABLE, AND SECURE DEPENDENCY MANAGEMENT. 就在昨天, Facebook 发布了新的 node.js 包管理器 Yarn 用以替代 npm .咱 ...

  3. 你需要知道的包管理器(Package Manager)

    最近我花了一点时间关注了在不同系统之中所用到的包管理器(Package Manager) .最开始的时候,我是在使用Linux操作系统时,对这种工具以及它背后的想法深深迷恋住了:这真是自由的软件世界. ...

  4. 【转】包管理器Bower详细讲解

      包管理器Bower   今天自己用Angular写东西的时候,下载了Angular-seed项目,发现需要用到bower,之前也使用过,没有仔细了解,今天趁机了解到一些. bower的官网地址:  ...

  5. Bower => 前端开发也有包管理器

    摘要: 一直以来npm,pip等各种包管理器好像都和前端开发没什么太大关系,当然因为nodejs的原因可能感觉npm会亲切一些,不过终归不是针对客户端的包管理工作,所以Bower的出现确实让人眼前一亮 ...

  6. 包管理器Bower使用手冊之中的一个

    包管理器Bower使用手冊之中的一个 作者:chszs,转载需注明.博客主页:http://blog.csdn.net/chszs 一.Bower介绍 Bower是一个适合Web应用的包管理器,它擅长 ...

  7. 包管理器Bower使用手册之一

    包管理器Bower使用手册之一 作者:chszs,转载需注明.博客主页:http://blog.csdn.net/chszs 一.Bower介绍 Bower是一个适合Web应用的包管理器,它擅长前端的 ...

  8. NET Core 静态文件及JS包管理器(npm, Bower)的使用

    NET Core 静态文件及JS包管理器(npm, Bower)的使用 文章目录 在 ASP.NET Core 中添加静态文件 使用npm管理JavaScript包 使用Bower管理JavaScri ...

  9. Node.js包管理器:

    Node.js包管理器: 当我们要把某个包作为工程运行的一部分时,通过本地模式获取,如果要在命令行下使用,则使用全局模式安装 使用全局模式安装的包并不能直接在JavaScript文件中用require ...

随机推荐

  1. Welcome-to-Swift-05控制流(Control Flow )

    Swift提供了所有c类语言的控制流结构.包括for和while循环来执行一个任务多次:if和switch语句来执行确定的条件下不同的分支的代码:break和continue关键字能将运行流程转到你代 ...

  2. 【Luogu】P2567幸运数字(容斥爆搜)

    题目链接 先预处理出幸运数,把成倍数关系的剔掉,然后用容斥原理搜索一下. 这里的容斥很像小学学的那个“班上有n个同学,有a个同学喜欢数学,b个同学喜欢语文……”那样. #include<cstd ...

  3. P1875 佳佳的魔法药水 (最短路,DP)

    题目链接 Solution 好题. 一开始一直在想怎么蛇皮建图,但是发现一直蛇不出来... 正解是用类似于 dijkstra 的算法对所有点进行松弛. 对于每个元素记录两个值: \(cost\) 代表 ...

  4. 从实际案例聊聊Java应用的GC优化

    转自美团点评技术博客:https://tech.meituan.com/jvm_optimize.html 当Java程序性能达不到既定目标,且其他优化手段都已经穷尽时,通常需要调整垃圾回收器来进一步 ...

  5. 2017.8.2 Noip2018模拟测试赛(十八)

     日期: 八月二日  总分: 300分  难度: 提高 ~ 省选  得分: 40分(又炸蛋了!!) 题目列表: T1:分手是祝愿 T2:残缺的字符串 T3:树点涂色 赛后心得: 哎,T1求期望,放弃. ...

  6. 洛谷P1372 a/b problem

    题目背景 “叮铃铃铃”,随着高考最后一科结考铃声的敲响,三年青春时光顿时凝固于此刻.毕业的欣喜怎敌那离别的不舍,憧憬着未来仍毋忘逝去的歌.1000多个日夜的欢笑和泪水,全凝聚在毕业晚会上,相信,这一定 ...

  7. net4:GridView中的重要操作(添加checkbox,以及鼠标动作,行颜色等)

    原文发布时间为:2008-07-29 -- 来源于本人的百度文章 [由搬家工具导入] using System;using System.Data;using System.Configuration ...

  8. linux内核栈与用户栈【转】

    转自:http://19880512.blog.51cto.com/936364/274610 最近linux内核的中断部分,总是被书里的栈弄晕,一会儿内核栈,一会儿用户栈的……很是崩溃,在网上goo ...

  9. php接口开发时,数据解析失败问题,字符转义,编码问题

    php接口开发时,数据解析失败问题,字符转义,编码问题 情景: A平台--->向接口请求数据---->接口向B平台请求数据---->B平台返回数据给接口---->接口返回数据给 ...

  10. hdu 5461(分类讨论)

    Largest Point Time Limit: 1500/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)Tot ...