'Pug Indentation warning in Nuxt project

After updating Nuxt, the pug pre-processor start giving a warning in all of the project files.

unexpected token "indent" (PUG:INVALID_TOKEN) [2,1]

This is because the pug code starts with one indentation from Template.

<template lang="pug">
    h1 Title
</template>

This will not show the warning anymore:

<template lang="pug">
h1 Title
</template>

How can I config Pug so it doesn't show this warning and keep the files with the code indentation?

Thank you for any help.

enter image description here



Solution 1:[1]

The @webdiscus/pug-loader allow using an indent in Vue template:

<template lang="pug">
    h1 Title
</template>

Install

npm i --save-dev @webdiscus/pug-loader

Change your vue.config.js according to the following minimal configuration:

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
              },
            },
          ],
        },
      ],
    },
  },
});

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 biodiscus