You need to enable JavaScript to run this app. gulp-pug编译时nav-item mixin报PUG:MIXIN_WITHOUT_BODY错误排查
优惠活动
大模型
产品
解决方案
定价
更多

gulp-pug编译时nav-item mixin报PUG:MIXIN_WITHOUT_BODY错误排查

报错根本原因

PUG:MIXIN_WITHOUT_BODY错误完全由Pug语法缩进不匹配导致,和Gulp 4构建流程、gulp-pug插件版本没有任何关系。
Pug解析mixin的规则非常明确:mixin声明行之后,所有属于这个mixin的代码块,必须比mixin xxx声明行缩进至少一级。
你当前写的代码里,li.nav-item和mixin nav-item(name, link)是完全平齐的同层级关系。Pug解析器读到mixin声明后,找不到任何缩进层级更低的关联内容,就会判定这个mixin是空的、没有有效主体,直接抛出对应报错。

修正方案

只需要把mixin内部的所有节点,统一缩进到比mixin声明高一级的层级就可以正常编译,修正后的代码如下:

mixin nav-item(name, link)
  li.nav-item
    a.nav-link(href=link)= name
同类常见避坑提示
  • 编辑器统一设置用空格作为缩进字符,不要混用Tab和空格。很多时候视觉上对齐的代码,实际缩进字符不统一,也会被Pug识别为同层级,触发同类错误
  • 后续如果需要给nav-item传递自定义块内容,记得在mixin内部添加block占位,否则调用mixin时传入的自定义内容也会触发内容识别错误
  • 不要在mixin声明行之后直接接和声明平齐的页面级标签,否则解析器会直接终止对mixin主体内容的识别

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.07 05:24:07