Вы можете попробовать
@webdiscus/pug-loader, он позволяет использовать отступ в темплейте:
<template lang="pug">
.app-container
h1 Hello Pug!
</template>
Установить Pug loader:
npm i --save-dev @webdiscus/pug-loader
Изменить "vue.config.js" согласно следующему конфигу:
const { defineConfig } = require('@vue/cli-service');
module.exports = defineConfig({
transpileDependencies: true,
chainWebpack: (config) => {
const pugRule = config.module.rule('pug');
// clear all existing pug loaders
pugRule.uses.clear();
pugRule.oneOfs.clear();
},
configureWebpack: {
module: {
rules: [
{
test: /\.pug$/,
oneOf: [
// allow import of Pug in JavaScript
{
exclude: /\.vue$/,
loader: '@webdiscus/pug-loader',
options: {
method: 'compile', // compile Pug into template function
},
},
// allow <template lang="pug"> in Vue components
{
loader: '@webdiscus/pug-loader',
options: {
method: 'html', // render Pug into pure HTML string
},
},
],
},
],
},
},
});