bower程序包管理器与npm的对比及handlebars包的使用实例

1、bower: 专门为前端表现设计的程序包管理器,类似npm,主要用于前端优化。bower可以管理包含HTML,CSS,JavaScript,字体甚至是图像文件的组成部分。bower并没有做别的事 - 它仅仅安装你需要的包及其依赖的正确版本。

2、**依赖node环境,window用户必须安装git工具。安装和升级bower必须用npm。

3、npm 和bower 的最大区别,就是 npm 支持嵌套地依赖管理(),而 bower只能支持扁平的依赖(嵌套的依赖,由程序员自己解决)。

**npm与bower的区别。

1.npm不能共享多个包共同依赖的包,每个包都会下载自己依赖的包。bower对于共享包只会下载一次。

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

实际项目中,可以采用npm作用于后端;bower作用于前端的组合使用模式

4、bower提供清单文件bower.json跟踪程序包,便于查阅包的版本、依赖情况。bower提供api和编程api,可在git bash、cmd或js中对包进行安装、卸载、更新、删除、发布等操作。

5、bower提供的api

bower install jquery:安装jquery库。

bower cache clean:安装失败后,清除缓存

  • cache:bower缓存管理
  • help:显示Bower命令的帮助信息
  • home:通过浏览器打开一个包的github发布页
  • info:查看包的信息
  • init:创建json文件
  • install:安装包到项目
  • link:在本地bower库建立一个项目链接
  • list:列出项目已安装的包
  • lookup:根据包名查询包的URL
  • prune:删除项目无关的包
  • register:注册一个包
  • search:搜索包
  • update:更新项目的包
  • uninstall:删除项目的包

6、bower提供的程序api---提供了可以操作的bower. commands 对象。

var bower = require(‘bower‘);

bower.commands

.install([‘jquery‘], { save: true }, { /* custom config */ })

.on(‘end‘, function (installed) {

console.log(installed);

});

bower.commands

.search(‘jquery‘, {})

.on(‘end‘, function (results) {

console.log(results);

});

7、bower中配置文件.bowerrc

{

"directory" : "components",

"json"      : "bower.json",

"endpoint"  : "https://Bower.herokuapp.com",

"searchpath"  : "",

"shorthand_resolver" : ""

}

  • directory:存放库文件的子目录名。
  • json:描述各个库的json文件名。
  • endpoint:在线索引的网址,用来搜索各种库。
  • searchpath:一个数组,储存备选的在线索引网址。如果某个库在endpoint中找不到,则继续搜索该属性指定的网址,通常用于放置某些不公开的库。
  • shorthand_resolver:定义各个库名称简写形式。

8、handlebars包的使用。

html代码:

<!DOCTYPE HTML>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>Handlebars demo</title>

<script type="text/javascript" src="../bower_components/jquery/dist/jquery.min.js"></script>

<script type="text/javascript" src="../bower_components/handlebars/handlebars.min.js"></script>

<script type="text/javascript" src="../javascript/myjs.js"></script>

<style type="text/css"></style>

</head>

<body>

<h2>Simple handlebars demo</h2>

<button id="btn_simple">Click me</button>

<div id="my_div">

</div>

<h2>Handlebars Helpers demo</h2>

<button id="btn_helper">Click me</button>

<div id="helper_div">

</div>

<script id="some-template" type="text/x-handlebars-template">

<table>

<thead>

<tr>

<th>Username</th>

<th>Real Name</th>

<th>Email</th>

</tr>

</thead>

<tbody>

{{#if users}}

<tr>

<td>{{username}}</td>

<td>{{firstName}} {{lastName}}</td>

<td>{{email}}</td>

</tr>

{{else}}

<tr>

<td colspan="3">NO users!</td>

</tr>

{{/if}}

</tbody>

</table>

</script>

<script id="helper-template" type="text/x-handlebars-template">

<div>

<h1>By {{fullName author}}</h1>

<div>{{body}}</div>

<h1>Comments</h1>

{{#each comments}}

<h2>By {{fullName author}}</h2>

<div>{{body}}</div>

{{/each}}

</div>

</script>

</body>

</html>

js代码:

$(document).ready(function () {

Handlebars.registerHelper(‘fullName‘, function (person) {

return person.firstName + " " + person.lastName;

});

$("#btn_simple").click(function () {

// $(this).hide();

showTemplate();

});

$("#btn_helper").click(function () {

showHowUseHelper();

});

});

// var context = {title: "My New Post", body: "This is my first post!"};

var persion = { title: "My New Post", body: "This is my first post!" }

function showTemplate() {

var source = $("#some-template").html();

var template = Handlebars.compile(source);

var data = {

users: [

{ username: "alan", firstName: "Alan", lastName: "Johnson", email: "[email protected]" },

{ username: "allison", firstName: "Allison", lastName: "House", email: "[email protected]" },

{ username: "ryan", firstName: "Ryan", lastName: "Carson", email: "[email protected]" }

]

};

$("#my_div").html(template(data));;

}

function showHowUseHelper() {

var context = {

author: { firstName: "Alan", lastName: "Johnson" },

body: "I Love Handlebars",

comments: [{

author: { firstName: "Yehuda", lastName: "Katz" },

body: "Me too!"

}]

};

var source = $("#helper-template").html();

var template = Handlebars.compile(source);

$("#helper_div").html(template(context));;

}

时间: 2024-10-06 15:51:10

bower程序包管理器与npm的对比及handlebars包的使用实例的相关文章

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

NET Core 静态文件及JS包管理器(npm, Bower)的使用 文章目录 在 ASP.NET Core 中添加静态文件 使用npm管理JavaScript包 使用Bower管理JavaScript包 在 ASP.NET Core 中添加静态文件 虽然ASP.NET主要大都做着后端的事情,但前端的一些静态文件也是很重要的.在ASP.NET Core中要启用静态文件,需要Microsoft.AspNetCore.StaticFiles组件.可以通过Nuget添加,或者在project.jso

rpm程序包管理器详解

1. 程序包管理器的功能 我们知道,由程序员编写并提供的程序源代码要转换成目标二进制格式才能在计算机上运行起来,但用户要在平台上使用时需要手动编译安装后才能使用,对于普通用户来说有一定难度.因此为了降低普通用户对应用程序的使用难度,程序员可在提供源代码的同时提供已在特定环境下编译好的程序文件,只要用户的平台环境和程序员的平台环境相同,就可以通过解压程序员提供的二进制格式文件即可使用,而无需自己手动编译安装. 一个已编译好的程序由二进制程序.库文件.配置文件和帮助手册等组成,而程序包管理器的功能就

Swift 包管理器教程

原文:An Introduction to the Swift Package Manager 作者:Mikael Konutgan 译者:kmyhy Swift 包管理器的正式发布是随着 Swift3.0 一起发布的,它是一个用于构建能够运行在 macOS 和 Linux 上的 Swift 库和 app 的新方法.它能够帮助你管理依赖,让你轻松构建.测试和运行你的 Swift 代码. Swift 包管理器有助于极大地改进 Swift 生态系统,让 Swift 更容易使用.部署到没有 Xcode

Linux新手的最佳包管理器

一个 Linux 新用户应该知道他或她的进步源自于对 Linux 发行版的使用,而 Linux 发行版有好几种,并以不同的方式管理软件包. 在 Linux开发 中,包管理器非常重要,知道如何使用多种包管理器可以让你像一个高手一样活得很舒适,从在仓库下载软件.安装软件,到更新软件.处理依赖和删除软件是非常重要的,这也是Linux 系统管理的一个重要部分. 成为一个 Linux 高手的一个标志是了解主要的 Linux 发行版如何处理包,在这篇文章中,我们应该看一些你在 Linux 上能找到的最佳的包

5款最适合新手的包管理器

导读 在 Linux 中,包管理器非常重要,知道如何使用多种包管理器可以让你像一个高手一样活得很舒适,从在仓库下载软件.安装软件,到更新软件.处理依赖和删除软件是非常重要的,这也是Linux 系统管理的一个重要部分. 成为一个 Linux 高手的一个标志是了解主要的 Linux 发行版如何处理包,在这篇文章中,我们应该看一些你在 Linux 上能找到的最佳的包管理器.在这里,我们的主要重点是关于一些最佳包管理器的相关信息,但不是如何使用它们,这些留给你亲自发现.但我会提供一些有意义的链接,使用指

Bower =&gt; 前端开发也有包管理器

摘要: 一直以来npm,pip等各种包管理器好像都和前端开发没什么太大关系,当然因为nodejs的原因可能感觉npm会亲切一些,不过终归不是针对客户端的包管理工作,所以Bower的出现确实让人眼前一亮. 最近看到一个专门针对前端的包管理工具Bower,它可用于搜索.安装和卸载如JavaScript.HTML.CSS之类的网络资源.实际上angularjs的种子项目就是用它的,看到了吗,它是专门针对客户端资源的,也就是说它管理的基本上都是前端工程师使用的东东. Bower是用于web前端开发的包管

node.js入门经典 第2章 npm(Node包管理器)

2.1 npm是什么 npm(Node Package Manager)是Node.js的包管理器.它允许开发人员在Node.js应用程序中创建.共享并重用模块. 2.3 安装模块 npm install [module_name] 2.4 使用模块 var module = require{'module'}; 2.8  使用package.json指定依赖关系 使用package.json文件来指定在应用程序中要用的模块,并且通过单个命令来安装它们: npm install

nodejs的包管理器npm和cnpm

http://www.ydcss.com/archives/18 3.npm介绍 3.1.说明:npm(node package manager)nodejs的包管理器,用于node插件管理(包括安装.卸载.管理依赖等): 3.2.使用npm安装插件:命令提示符执行npm install <name> [-g] [--save-dev]: 3.2.1.<name>:node插件名称.例:npm install gulp-less --save-dev 3.2.2.-g:全局安装.将

程序包管理器(上)

一个编译好的二进制程序应用文件的组成部分有二进制文件.库文件.配置文件.帮助文件,用户在安装时设置繁琐,而且在用户升级.卸载等操作时更为麻烦.为了提升使用效率及自动简化操作,这就迫在眉睫的需要有一款程序包管理器.. 程序包管理器的主要功能它到底有哪些呢?它的主要功能是将编译好的应用程序的各组成文件打包一个或多个程序包文件,从而方便快捷地实现程序包的安装.卸载.查询.升级和校验等管理操作.而现在主要有四种主流的程序包管理器:(1)Debian开发的程序包管理器,程序包管理器叫做dpt程序包管理器,