Плагин HTML Webpack не будет компилироваться, поскольку переменные Thymeleaf не определены

Когда Webpack компилирует мое приложение, содержащее приведенный ниже HTML, он жалуется, что переменная theme не определена.

Вот мой index.html файл:

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8"/>
</head>
<body th:class="${theme}">
    <div id="root"></div>
</body>
</html>

И вот ошибка, которую я получаю:

Failed to compile.

Error in Template execution failed: ReferenceError: theme is not defined

- loader.js:4 eval
/src/main/resources/templates/index.html?./~/html-webpack-plugin/lib/loader.js:4:10

person Ben Bullock    schedule 04.09.2017    source источник


Ответы (3)


Вставьте это:

веб-пакет.config

new HtmlWebpackPlugin({
     template: './index.ejs',
     filename: './index.html',
     minify: { collapseWhitespace: true },
     csrf: '${_csrf.token}',
}),

в вашем файле index.ejs поместите:

<meta name="_csrf" th:content="<%= htmlWebpackPlugin.options.csrf %>"/>
person Aled Evans    schedule 13.10.2018

Мой обходной путь: заменить $ на <%="$"%>

person Nick    schedule 17.04.2019

Здесь та же ошибка. Я нашел эту проблему, и вам нужно просто использовать webpack 'html-загрузчик' вроде этого:

new HtmlWebpackPlugin({
    template: '!!html-loader!index.html'
})

PS: не забудьте установить его перед npm;)

person Raul Bejarano    schedule 14.12.2017
comment
не могли бы вы объяснить, как использовать это в vue.config.js? - person DeejonZ; 20.12.2018