【问题标题】:Express.js View Engine vs. Compiling ManuallyExpress.js 视图引擎与手动编译
【发布时间】:2016-08-10 16:54:26
【问题描述】:

我目前正在使用带有 hbs 库的 Express.js,以便我可以在我的应用程序中使用 Handlebars 模板。我最近开始为我的应用程序使用gulp 创建一个构建系统,并且我发现了像gulp-handlebars 这样的包。我的问题是,使用像 hbs 这样的 Express 视图引擎比使用 vanilla JS handlebars 库和像 gulp-handlebars 这样的 gulp 插件来编译我的模板有什么优点/缺点?

【问题讨论】:

    标签: javascript node.js express gulp handlebars.js


    【解决方案1】:

    使用 gulp、grunt 等和 HBS 插件可用于编译静态 html 文件或预编译模板以通过 javascript 加载器(例如 require)加载。使用 express 模板引擎,您可以在请求时为动态页面(如 rails 或 php 应用程序)编译服务器端。您还可以在客户端使用 Handlebars 进行动态更新,例如在 Ember.js 中。这真的取决于您正在构建什么样的应用程序。

    【讨论】:

    • gulp-handlebars 可以使用to precompile templates,仍然可以用于渲染动态数据。
    • 公平。更新了答案。
    • 我的应用程序不是动态应用程序。这只是我的个人网站,所以我只是使用hbs 来帮助我创建布局和模板并更轻松地创建页面。我要插入的唯一数据是像<title> 标记到每个页面的布局中,以及博客文章的内容到文章模板中。现在,我正在根据 URL 获取帖子 ID,并从数据库中检索内容,然后将其插入到车把帖子模板中。我没有使用任何 JavaScript 客户端,因为我的页面在加载后都是静态的。不确定是否有更好的方法。
    • 在这样的规模下,不会有可衡量的性能差异,所以它实际上只是对您来说更容易开发的东西。
    【解决方案2】:

    鉴于 Express 将在“生产模式”(process.env.NODE_ENV === 'production') 中缓存已编译的模板,或者手动启用 view cache setting 时,使用 Gulp 预编译模板通常不会带来很多额外的(性能)优势。

    如果您在客户端使用 Handlebars 模板,gulp-handlebars 会更有用。

    【讨论】:

    • 查看我对 JustH 的评论,了解我正在构建什么样的应用程序。
    • @JoeSweeney 我同意这样的评估,即您应该只使用自己喜欢的东西(在我的情况下,只使用res.render('template', ...))。
    猜你喜欢
    • 1970-01-01
    • 2021-07-26
    • 1970-01-01
    • 1970-01-01
    • 2021-06-05
    • 2021-08-05
    • 2013-12-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多