如何向 Pug 模板添加 JavaScript 函数

How to add JavaScript functions to a Pug template

将 JavaScipt 添加到 Pug 模板有很多问题,包括:

在 Pug 中使用 JavaSript 函数的 preferred/recommended 方法是什么?

在意识到有更好的选择之前,我为这些问题苦苦挣扎了一段时间。我建议将 JavaScript 函数传递给 Pug 渲染函数,而不是将它们构建到模板中。

我之前做的是这个JavaScript

const render = pug.compileFile(path.join(__dirname, '../templates/sandbox.pug'));
const html = render({});

和这个 Pug 模板

- var testFunc = function(){
-     return "Test func";
-   }

div #{testFunc()} worked!

实现相同目标的更好方法是 JavaScript

const render = pug.compileFile(path.join(__dirname, '../templates/sandbox.pug'));
const html = render({
  testFunc: function(){
    return "Test func";
  }
});

和这个 Pug 模板

div #{testFunc()} worked!

这允许您设置断点,使用 Typescript 和所有其他很酷的东西,并避免与解析相关的所有 Pug 错误 JavaScript 不太好。