pzzrudlf
V2EX  ›  Node.js

为什么很多人安装了 express 之后,不使用默认的 jade,反而去使用 ejs 呢?

  •  1
     
  •   pzzrudlf · Feb 27, 2016 · 10554 views
    This topic created in 3750 days ago, the information mentioned may be changed or developed.

    如题,我今天刚刚搭建了 node + express 环境,就像修改视图文件的后缀为.html 。但是在 google 方法的时候,发现很多人都不使用默认的 jade 模板引擎,反而使用 ejs 模板引擎。这是为什么?除了 jade 和 ejs 之外,还有其他使用率较高的模板引擎吗?(我是新人,求多多关注:))

    30 replies    2016-02-29 10:24:00 +08:00
    pzzrudlf
        1
    pzzrudlf  
    OP
       Feb 27, 2016
    '像'=>'想'。
    kungfuchicken
        2
    kungfuchicken  
       Feb 27, 2016
    因为 jade 真的真的很难用
    fedoral
        3
    fedoral  
       Feb 27, 2016 via Android
    hbs 一直在用
    jybox
        4
    jybox  
       Feb 27, 2016
    express 默认 jade ?据我所知当前版本的 express 已经移除了所有和具体模板引擎有关的逻辑,你可以在源代码中搜索 `jade` 这个词,只出现在了示例和注释中。

    相比于 ejs 等模板引擎 Jade 的劣势:

    只能渲染 HTML (而很多应用需要渲染非 HTML 内容);
    JavaScript 程序员不习惯用缩进来表示层级(很多编辑器对基于缩进表示层级的语言支持也比较差);
    Jade 引擎的代码量是 ejs 的几倍,如果希望在前后端使用同一个模板引擎, jade 可能不是一个好的选择。
    WildCat
        5
    WildCat  
       Feb 27, 2016 via iPhone
    我猜楼主是用的 WebStorm
    yyfearth
        6
    yyfearth  
       Feb 27, 2016
    主要原因是 jade 需要重写所有的模版
    而 ejs 可以直接复制粘贴现成的 html
    stevenFang
        7
    stevenFang  
       Feb 27, 2016
    @yyfearth 你在这里很活跃啊
    yyfearth
        8
    yyfearth  
       Feb 27, 2016
    @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
    jsonline
        9
    jsonline  
       Feb 27, 2016 via Android
    因为 Jade 不是 HTML
    adspe
        10
    adspe  
       Feb 27, 2016
    jade 确实有点难用。 intent 我一直弄不好
    dphdjy
        11
    dphdjy  
       Feb 27, 2016 via Android
    _(:з)∠)_ 把 ejs 换成 jade 的路过~
    jade 比较优雅~~和 coffeescript 一起用~
    画面多美~
    fermatrolle
        12
    fermatrolle  
       Feb 27, 2016
    确实,默认是 jade ,但是当时比较着急,就没花时间去学,而且 ejs 入手比较简单。
    CrazySpiderMan
        13
    CrazySpiderMan  
       Feb 27, 2016
    用 jade 的话, 如果需要复制 html 代码的, 就把用工具把它转换成 jade 就是了. jade 代码易读些.
    Twinkle
        14
    Twinkle  
       Feb 27, 2016
    @dphdjy es6 推广开来之后感觉 coffee 快死了_(:з)∠)_
    Wangxf
        15
    Wangxf  
       Feb 27, 2016
    jade :不是 html ,现成的 html 还要借助 html2jade (本身有小小的问题)转成 jade ,而且团队协作麻烦不小
    ejs :很不错,但是受不了各种内嵌,看着很烦
    hbs: 可以,但是有些功能比较薄弱
    最后选择了无比强大的[nunjucks]( http://mozilla.github.io/nunjucks/cn/templating.html)
    dphdjy
        16
    dphdjy  
       Feb 27, 2016 via Android
    @Twinkle 不不~私以为主要是 typescript 出来~coffeescript 快死了~~然而我偶尔小脚本还在用~ 多美~_(:з)∠)_
    visonme
        17
    visonme  
       Feb 27, 2016
    多是一种习惯吧
    jade 语法简洁了很多,但是我还是喜欢写 html 标签,看的顺眼
    zyguan
        18
    zyguan  
       Feb 27, 2016
    dsl 简洁是简洁,但多了学习成本,要想用好还得深入其实现,再说有了 emmet 等神器, html 写起来也不算费事。当然,团队合作也是个事儿~
    Keviw
        19
    Keviw  
       Feb 27, 2016
    @dphdjy +1 我也觉得 jade 很 NICE (易读、简洁),但是如果想移植 html 文件到 jade 就得重写,很影响效率,现在看来大多人普遍会采用 ejs 来开发项目。
    hxtheone
        20
    hxtheone  
       Feb 27, 2016 via iPhone
    写 jade 行数一多就觉得有点控制不住
    breeswish
        21
    breeswish  
       Feb 27, 2016
    nunjucks 路过, ejs 就像拿 PHP 当做模板引擎一样,写多了就会发现其实很蛋疼哒
    nunjucks 和 Twig (PHP), Jinja (Python) 等是类似的语法
    loading
        22
    loading  
       Feb 27, 2016 via Android
    @breeswish nunjucks 有坑吗?我习惯而且喜欢用 jinja2 。
    Threezj
        23
    Threezj  
       Feb 27, 2016
    jade 需要学习成本呀。
    breeswish
        24
    breeswish  
       Feb 27, 2016
    @loading 感觉用起来几乎完全一致
    wentao
        25
    wentao  
       Feb 27, 2016 via Android
    可以看看 swig 。 Django 就是内置的这个引擎 感觉比较简单
    wizardforcel
        26
    wizardforcel  
       Feb 27, 2016
    因为 jade 不是 html 啊
    dphdjy
        27
    dphdjy  
       Feb 28, 2016 via Android
    @Keviw 我感觉 jade 最麻烦不是这点
    除非已经有了 html ,进行重构,否则 jade 各方面优势都很大
    但是 jade 拓展有点问题~(也许我姿势不对
    因为用 tab 排版,对于有些格式的内容,怎么写都有点奇怪~~
    ejs 写多了简直一团乱麻~我还没找到好用的格式化工具
    w88975
        28
    w88975  
       Feb 28, 2016
    jade 的可读性太差,反而 ejs 更符合大部分人对 HTML 语法的认识(除了 ejs 的模板引擎语法,其他都是纯统的 HTML 语法)
    yimity
        29
    yimity  
       Feb 29, 2016
    我目前也慢慢的切换到 nunjucks 了。
    之前是 swig ,和 nunjucks 语法基本一样。
    在之前是 ejs , jade 需要转换。麻烦。
    SoulClinic
        30
    SoulClinic  
       Feb 29, 2016
    直接用 React.js 不用模板语言。。。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1051 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 93c8b4a0 · 107ms · UTC 22:53 · PVG 06:53 · LAX 15:53 · JFK 18:53
    ♥ Do have faith in what you're doing.