如题,我今天刚刚搭建了 node + express 环境,就像修改视图文件的后缀为.html 。但是在 google 方法的时候,发现很多人都不使用默认的 jade 模板引擎,反而使用 ejs 模板引擎。这是为什么?除了 jade 和 ejs 之外,还有其他使用率较高的模板引擎吗?(我是新人,求多多关注:))
1
pzzrudlf OP '像'=>'想'。
|
2
kungfuchicken 2016-02-27 00:55:31 +08:00
因为 jade 真的真的很难用
|
3
fedoral 2016-02-27 01:04:36 +08:00 via Android
hbs 一直在用
|
4
jybox 2016-02-27 01:33:08 +08:00
express 默认 jade ?据我所知当前版本的 express 已经移除了所有和具体模板引擎有关的逻辑,你可以在源代码中搜索 `jade` 这个词,只出现在了示例和注释中。
相比于 ejs 等模板引擎 Jade 的劣势: 只能渲染 HTML (而很多应用需要渲染非 HTML 内容); JavaScript 程序员不习惯用缩进来表示层级(很多编辑器对基于缩进表示层级的语言支持也比较差); Jade 引擎的代码量是 ejs 的几倍,如果希望在前后端使用同一个模板引擎, jade 可能不是一个好的选择。 |
5
WildCat 2016-02-27 01:34:14 +08:00 via iPhone
我猜楼主是用的 WebStorm
|
6
yyfearth 2016-02-27 02:53:32 +08:00
主要原因是 jade 需要重写所有的模版
而 ejs 可以直接复制粘贴现成的 html |
7
stevenFang 2016-02-27 04:38:40 +08:00
@yyfearth 你在这里很活跃啊
|
8
yyfearth 2016-02-27 09:05:38 +08:00
@stevenFang 那是啊
@jybox 貌似有啊 根据文档 express generator 默认是 jade $ express -h Usage: express [options] [dir] Options: -h, --help output usage information -V, --version output the version number -e, --ejs add ejs engine support (defaults to jade) --hbs add handlebars engine support |
9
jsonline 2016-02-27 11:34:21 +08:00 via Android
因为 Jade 不是 HTML
|
10
adspe 2016-02-27 12:03:40 +08:00
jade 确实有点难用。 intent 我一直弄不好
|
11
dphdjy 2016-02-27 12:31:09 +08:00 via Android
_(:з)∠)_ 把 ejs 换成 jade 的路过~
jade 比较优雅~~和 coffeescript 一起用~ 画面多美~ |
12
fermatrolle 2016-02-27 13:31:11 +08:00
确实,默认是 jade ,但是当时比较着急,就没花时间去学,而且 ejs 入手比较简单。
|
13
CrazySpiderMan 2016-02-27 13:33:35 +08:00
用 jade 的话, 如果需要复制 html 代码的, 就把用工具把它转换成 jade 就是了. jade 代码易读些.
|
15
Wangxf 2016-02-27 14:04:09 +08:00
jade :不是 html ,现成的 html 还要借助 html2jade (本身有小小的问题)转成 jade ,而且团队协作麻烦不小
ejs :很不错,但是受不了各种内嵌,看着很烦 hbs: 可以,但是有些功能比较薄弱 最后选择了无比强大的[nunjucks]( http://mozilla.github.io/nunjucks/cn/templating.html) |
16
dphdjy 2016-02-27 14:48:33 +08:00 via Android
@Twinkle 不不~私以为主要是 typescript 出来~coffeescript 快死了~~然而我偶尔小脚本还在用~ 多美~_(:з)∠)_
|
17
visonme 2016-02-27 14:52:43 +08:00
多是一种习惯吧
jade 语法简洁了很多,但是我还是喜欢写 html 标签,看的顺眼 |
18
zyguan 2016-02-27 15:50:27 +08:00
dsl 简洁是简洁,但多了学习成本,要想用好还得深入其实现,再说有了 emmet 等神器, html 写起来也不算费事。当然,团队合作也是个事儿~
|
19
Keviw 2016-02-27 15:55:44 +08:00
@dphdjy +1 我也觉得 jade 很 NICE (易读、简洁),但是如果想移植 html 文件到 jade 就得重写,很影响效率,现在看来大多人普遍会采用 ejs 来开发项目。
|
20
hxtheone 2016-02-27 15:58:37 +08:00 via iPhone
写 jade 行数一多就觉得有点控制不住
|
21
breeswish 2016-02-27 16:21:32 +08:00
nunjucks 路过, ejs 就像拿 PHP 当做模板引擎一样,写多了就会发现其实很蛋疼哒
nunjucks 和 Twig (PHP), Jinja (Python) 等是类似的语法 |
23
Threezj 2016-02-27 17:05:09 +08:00
jade 需要学习成本呀。
|
25
wentao 2016-02-27 19:23:23 +08:00 via Android
可以看看 swig 。 Django 就是内置的这个引擎 感觉比较简单
|
26
wizardforcel 2016-02-27 19:49:52 +08:00
因为 jade 不是 html 啊
|
27
dphdjy 2016-02-28 02:29:31 +08:00 via Android
@Keviw 我感觉 jade 最麻烦不是这点
除非已经有了 html ,进行重构,否则 jade 各方面优势都很大 但是 jade 拓展有点问题~(也许我姿势不对 因为用 tab 排版,对于有些格式的内容,怎么写都有点奇怪~~ ejs 写多了简直一团乱麻~我还没找到好用的格式化工具 |
28
w88975 2016-02-28 20:48:14 +08:00
jade 的可读性太差,反而 ejs 更符合大部分人对 HTML 语法的认识(除了 ejs 的模板引擎语法,其他都是纯统的 HTML 语法)
|
29
yimity 2016-02-29 09:38:15 +08:00
我目前也慢慢的切换到 nunjucks 了。
之前是 swig ,和 nunjucks 语法基本一样。 在之前是 ejs , jade 需要转换。麻烦。 |
30
SoulClinic 2016-02-29 10:24:00 +08:00
直接用 React.js 不用模板语言。。。
|