文档章节

handlebars预编译

浮世微凉
 浮世微凉
发布于 2015/11/27 09:26
字数 512
阅读 39
收藏 0
点赞 0
评论 0

Using the Handlebars precompiler, you can precompile your Handlebars templates to save time on the client and reduce the required runtime size of the handlebars library.

Getting Started

First, you will need to install node and npm. On OS X:
$ brew install node
This assumes you already have Homebrew installed. If not,  install it first.
Next, install the Handlebars npm package.
$ npm install handlebars -g
Using the -g flag installs the package globally, so it can be used in any project.
Now, you're ready to use the precompiler:
$ handlebars <input> -f <output>
The compiler will insert templates in Handlebars.templates. If your input file is person.handlebars, the compiler will insert it at Handlebars.templates.person. This template will be a function that may be directly executed in the same manner as templates compiled locally. I.e.
Handlebars.templates.person(context, options);
If you're working with precompiled templates, you don't need to ship the compiler with your deployed application. Instead, you can use the smaller "runtime" build.
<script src="/libs/handlebars.runtime.js"></script>
In addition to reducing the download size, eliminating client-side compilation will significantly speed up boot time, as compilation is the most expensive part of Handlebars.

Optimizations

Because you are precompiling templates, you can also apply several optimization to the compiler. The first allows you to specify a list of the known helpers to the compiler
handlebars <input> -f <output> -k each -k if -k unless
The Handlebars compiler will optimize accesses to those helpers for performance.
When all helpers are known at compile time, the --knownOnly option provides the smallest generated code that also provides the fastest execution.

Usage

Usage: node ./bin/handlebars [template|directory]...

Options:
  -f, --output         Output File
  --map                Source Map File                                                    [string]  [default: undefined]
  -a, --amd            Exports amd style (require.js)
  -c, --commonjs       Exports CommonJS style, path to Handlebars module                                 [default: null]
  -h, --handlebarPath  Path to handlebar.js (only valid for amd-style)                                     [default: ""]
  -k, --known          Known helpers
  -o, --knownOnly      Known helpers only
  -m, --min            Minimize output
  -n, --namespace      Template namespace                                              [default: "Handlebars.templates"]
  -s, --simple         Output template function only.
  -N, --name           Name of passed string templates. Optional if running in a simple mode. Required when operating
                       on multiple templates.
  -i, --string         Generates a template from the passed CLI argument.
                       "-" is treated as a special value and causes stdin to be read for the template value.
  -r, --root           Template root. Base value that will be stripped from template names.
  -p, --partial        Compiling a partial template
  -d, --data           Include data when compiling
  -e, --extension      Template extension.                                                       [default: "handlebars"]
  -b, --bom            Removes the BOM (Byte Order Mark) from the beginning of the templates.
  -v, --version        Prints the current compiler version
  --help               Outputs this message
If using the precompiler's normal mode, the resulting templates will be stored to the Handlebars.templatesobject using the relative template name sans the extension. These templates may be executed in the same manner as templates.
If using the simple mode the precompiler will generate a single javascript method. To execute this method it must be passed to the Handlebars.template method and the resulting object may be used as normal.

本文转载自:http://handlebarsjs.com/precompilation.html

共有 人打赏支持
浮世微凉
粉丝 1
博文 13
码字总数 2789
作品 0
浦东
程序员
Node.js模板引擎(Hanldlebars)

Handlebars 是基于jQuery的插件,以json对象为数据源,支持逻辑判断,循环操作等。 60k左右。 采用Logic-less template(无逻辑模板),加载时被预编译,而不是到了客户端执行代码时再去编译...

jedi_knight
2015/10/20
53
0
handlebars 安装erro

handlebars 安装: 1、npm 2、npm install -g handlebars(后面可以加@3.0.1版本号) 3、handlebars public/js/template > public/js/template.js 在相应目录进行预编译 事先确定你的电脑上已经...

浮世微凉
2015/11/27
81
0
Handlebars中文文档(译自官方版)

Handlebars 为你提供了一个可以毫无挫折感的高效率书写 语义化的模板 所必需的一切。 Mustache 模板和 Handlebars 是兼容的,所以你可以把Mustache模板拿来导入到Handlebars中,并开始使用H...

浮世微凉
2015/11/27
34
0
把手模块编译器--Locator-Handlebars

Locator-Handlebars 是 Yahoo 开发的定位器把手模块编译器。locator-handlebars可插入到要编译把手模版(compile Handlebars templates)的定位组件中。然后编译模版可用于使用 express-view...

大胖森
2015/05/05
109
0
tempistry

tempistry 是超轻量级的序列化 JavaScript 模板和先后呈现逻辑注册。 安装: npm install tempistry 使用 temper 来编译,所以支持以下渲染引擎: jade ejs hogan.js mustache handlebars 服...

叶秀兰
2015/05/08
93
0
模板引擎编译程序--Temper

Temper 是极小的模板编译模块,通过单个实例,支持服务端和客户端使用。Temper 非常容易创建同构的 JavaScript 应用。 支持以下模板引擎: react-jsx jade ejs hogan.js mustache handlebar...

叶秀兰
2015/05/08
227
0
前端开发环境--Silky

Silky是一个多用户协作的前端开发环境,正如她的名字一样,Silky希望让前端的协作开发能如丝般的润滑。Silky基于Handlebars和Less,选择Handlebars作为模板引擎的原因是因为它很简单,Less的...

wvv8oo
2014/10/07
711
0
基于 Koa平台Node.js开发的KoaHub.js的模板引擎代码

koahub-handlebars koahub-handlebars koahub handlebars templates Installation $ npm install koahub-handlebars Use with koa var koa = require('koa'); var hbs = require('koahub-han......

NUANUAA
2016/09/29
163
0
koahub源码市场koahub-handlebars开发框架在哪里?

koahub源码市场koahub-handlebars开发框架在哪里?koahub源码市场koahub-handlebars开发框架在哪里?koahub源码市场koahub-handlebars开发框架在哪里?koahub源码市场koahub-handlebars开发框...

wemall微信商城
2016/10/25
83
0
Handlebars.js 4.0.5 发布,JavaScript 页面模板库

Handlebars.js 4.0.5 发布,此版本主要改进如下: #1132 - Update uglify-js to avoid vulnerability (@plynchnlm) #1129 - Minified lib returns an empty string (@bricss) Return current......

oschina
2015/11/21
1K
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

数据结构与算法2

一个数组的例子,实现查找,显示和删除的功能。 public class array {public static void main(String[] args){long[] arr;arr = new long[100];int nElems = 0;int j;...

沉迷于编程的小菜菜
10分钟前
0
0
Python3 基于 requests 批量下载图片

Python3 基于 requests 批量下载图片 import requestsheaders = {'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8','Accept-Encod......

leeyi
10分钟前
0
0
Sparkstreaming and Kafka

简介 Kafka 0.10的Spark Streaming集成设计与0.8 Direct Stream方法类似。 它提供了简单的并行性,Kafka分区和Spark分区之间的1:1对应关系,以及对偏移量和元数据的访问。 但是,由于较新的...

刺猬一号
15分钟前
0
0
java获取当前时间所在一周的周一和周日日期

/** * 当前时间所在一周的周一和周日时间 * @param time 当前时间 * @return */ public static Map getWeekDate(String time) { Map map = new HashedMap(); SimpleDateFormat sdf = new Si......

小弱鸡
42分钟前
0
0
Redis数据的导出和导入(dump和load方式)

网上有些文章已经不再适用,本人也是踩了些坑,在此记录下。 迁移redis数据一般有如下3种方式: 第三方工具redis-dump,redis-load aof机制,需要开启aof功能 rdb存储机制 这里介绍第一种方式...

iplusx
47分钟前
1
0
ElasticSearch 高亮显示大文档搜索结果

2016年12月,我们开始研究Ambar——一个文档搜索系统。Ambar使用ElasticSearch作为核心搜索引擎。 在Ambar开发的过程中,我们处理了很多与ES相关的问题,我们想分享我们得到的宝贵经验。让我...

九州暮云
今天
1
0
Python 使用 pywifi 模块 破解wifi密码

git https://github.com/awkman/pywifi 常见常量 from pywifi import const# Define interface status.IFACE_DISCONNECTED = 0IFACE_SCANNING = 1IFACE_INACTIVE = 2IFACE_CONNEC......

阿豪boy
今天
1
0
phpstorm使用Iedis

phpstorm的redis插件Iedis是真好用 看了网上挺多的文章,但是由于我系统还是ubuntu,就有点尴尬了,现在破解之后,留个笔记,即使自己之后有需要也可以很快翻阅 先下载资源 资源下载 zip压缩...

贤郎--均灵
今天
0
0
第三章 spring-bean之FactoryBeanRegistrySupport(4)

前言 从FactoryBeanRegistrySupport类的名字可以看出FactoryBeanRegistrySupport负责FactoryBean的注册与支持。如果想知道FactoryBean相关的资料,请阅读spring-bean中关于FactoryBean的解读...

鸟菜啊
今天
0
0
CentOS “Destination Host Unreachable”问题解决办法

挑战极速安装CentOS时遇到局域网主机不能通信的情况: [root@zjd network-scripts]# ping 8.8.8.8PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.64 bytes from 8.8.8.8: icmp_seq=1 ttl=......

wffger
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部