【发布时间】:2020-08-06 00:42:26
【问题描述】:
我在 Twig(https://www.npmjs.com/package/twig) 中有一个模板,我想让它呈现为字符串。我正在使用 TS。
function getHtml(title: string, message: string): Promise<string> {
const html = await promisify(renderFile)('./template.twig', {
filename: 'template.twig',
settings: {
title,
message,
},
});
return html;
}
但承诺始终处于未决状态,即使我使用回调版本也无法获得 HTML。
import Twig from 'twig';
Twig.renderFile('./path/to/someFile.twig', {foo:'bar'}, (err, html) => {
html; // compiled string
});
通过此调用,不存在默认导出的 TS 警报...
谢谢!
【问题讨论】:
-
你能不能透露一下你的
tsconfig.json? -
是的:{“compilerOptions”:{“emitDecoratorMetadata”:true,“experimentalDecorators”:true,“outDir”:“./dist”,“allowJs”:true,“target”:“es6 ", "sourceMap": true, "module": "commonjs", "moduleResolution": "node", "resolveJsonModule": true }, "include": ["./src/**/*", "./ src/**/*.json"], "排除": ["node_modules"] }
-
如果你像
node dist/index.js一样在./dist调用你的脚本,你必须小心path/to/twig,所以路径应该与dist相关。 -
我用ts-node直接在ts中运行
-
我不确定它是否也会将您的脚本复制到 dist。只需通过在函数开头注销 __dirname 来仔细检查
标签: javascript node.js typescript twig