首页 > 解决方案 > 车把助手未使用 gulp 评估,带有 express-handlebars 的 webpack

问题描述

express-handlebars在我的项目中使用。

只有当我将我的文件符号链接/dist到我的/src文件时,我才能评估车把(使用工作助手)——如果这有意义的话。静态复制*.hbs的文件/dist没有调用我的辅助函数。

我究竟做错了什么?我是车把和 JS express 模板的新手。希望有一些简单的我不明白的东西。

我的服务器代码:

import * as expressHandlebars from 'express-handlebars'

const appId = "THE APPLICATION ID"

const handlebars = expressHandlebars.create({
    extname: '.hbs',
    helpers: {
      appId: () => {
        console.log("HELPER CALLED!!!")
        return appId
      },
    },
    defaultLayout: 'false',
  })
  express.engine('.hbs', handlebars.engine)
  express.set('view engine', '.hbs')

  express.set('views', path.join(__dirname, 'views'))

  express.get('/tab/example', (_req, res) => {
    res.render('tabs/example', { layout: false })
  })

我的/dist目录包含该文件,该文件被评估:

dist/views/tabs/example.hbs

此示例包含代码:

   <p>{{appId}}</p>

我期待两件事不会发生:

  1. 使用“HELPER CALLED!!!”调用console.log
  2. 包含文本“应用程序 ID”的页面

如果我从to符号链接会发生这种情况,但如果我将文件(使用 gulp)复制.dist/viewsapp/src/viewsdist/views

我在这里想念什么?谢谢!

请注意,express 正在从日志中呈现视图:

  express:view lookup "task-modules/sign-in/example.hbs" +7ms
  express:view stat "views/task-modules/sign-in/example.hbs" +1ms
  express:view render "views/task-modules/sign-in/example.hbs" +0ms

(为了安全起见,我删除了一些 stat 和 render 的路径)

标签: node.jsexpresshandlebars.jsexpress-handlebars

解决方案


推荐阅读