You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Pug模板条件代码始终执行:是Bug还是语法使用错误?

问题分析与解决方案

问题根源

你的Pug代码存在两个核心问题:

  1. 缩进与语法错误:第二个if (b === 2)后多余的.符号,加上错误的缩进层级,导致var x = true;脱离了条件判断的作用域,完全不受b === 2的控制。
  2. include作用域错误:include script.js没有嵌套在if (a === 5)的代码块内,所以无论a的值是多少,都会强制引入该文件。

修正后的代码

- var a = 5;
- var b = 3;
script
  if (a === 5)
    if (b === 2)
      | var x = true;
    include script.js

关键语法说明(翻译自Pug官方文档)

在Pug的<script>标签内使用include时,需注意以下规则:

  • include是编译期指令,会直接将目标文件内容插入到当前位置,必须通过缩进绑定到对应的条件代码块中,才能实现条件性引入。
  • 在<script>标签内编写原生JS代码时,单行内容需要用|标记;如果是多行代码,可以使用script.开启纯文本模式,避免Pug解析语法冲突。

内容的提问来源于stack exchange,提问作者AGamePlayer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 16:16:06