Typescript不会加载车把文件

时间:2018-01-27 23:00:29

标签: node.js typescript express handlebars.js

我有以下目录结构:

src
|- server
  |- myServer.ts
  |- views
    |- myView.hbs
dist
|- server
  |- myServer.js

请注意views文件夹中没有dist文件夹(从typescript编译的js源代码是)。这是一个问题,因为当我从javascript中请求../views/selectCoin.hbs时,没有任何内容。

编译打字稿时,如何将*.hbs个文件导出到javascript?

1 个答案:

答案 0 :(得分:1)

要告诉车把哪里有视图,你可以像这样配置

app.set('view engine', 'hbs');
app.set('views', path.join(__dirname, '../../src/server/views'));
app.engine('hbs', exphbs({
    defaultLayout: 'index',
    extname: 'hbs',
    layoutsDir: path.join(__dirname, '../../src/server/views/layouts'),
    partialsDir: path.join(__dirname, '../../src/server/views'),
}));

因此它会在src文件夹中查找视图。

另一种选择是使用ts-node代替node。有了它,你不需要编译你的项目,你不需要一个dist文件夹,你可以配置它直接从你的位置看:

app.set('view engine', 'hbs');
app.set('views', path.join(__dirname, 'views'));
app.engine('hbs', exphbs({
    defaultLayout: 'index',
    extname: 'hbs',
    layoutsDir: path.join(__dirname, 'views/layouts'),
    partialsDir: path.join(__dirname, 'views'),
}));

如果您想将视图复制到dist文件夹,您可以:

相关问题