我正在学习使用gulp,我决定用pug
来写我所有的html。
事情是这样的,有这样的文件夹结构:
src/pug
├── base
│ ├── mixins.pug
│ └── variables.pug
├── components
│ ├── footer.pug
│ ├── header.pug
│ ├── head.pug
│ └── template.pug
├── index.pug
└── views
└── about.pug
我希望gulp忽略所有不是index.html的文件以及views文件夹中的所有文件。
我使用以下配置来执行此操作:
function compilePug() {
return src(['./src/pug/index.pug','./src/pug/views/*.pug'], {base: './src/pug/'})
.pipe(pug().on("error", console.log))
.pipe(
pug({
// Your options in here.
})
)
.pipe(dest('./dist/'));
};
问题是,这就是像dist/views/about.html
这样的创建和输出。
但是我更愿意生成类似于dist/about/index.html
这样的代码,这样我就可以在多个页面之间导航,而不必在最后使用.html
扩展名。
这可能吗?
1条答案
按热度按时间to94eoyn1#
我已经编写了一个npm模块,它可以做到这一点:
gulp-url-builder
。首先,把你的
index.pug
移到你的views
目录中。你想以页面形式呈现的所有东西都应该放在那里。不要忘记调整你的模板的extends
路径。在gulpfile中安装了所需的url构建器模块之后,可以修改
compilePug()
函数,使其看起来像这样:这将基于此模式输出html文件(请注意,下划线可用于嵌套页面):