Mike_Ro
@Mike_Ro
$ run войтивайти

Как правильно передавать значения шаблону в Webpack 4?

Приветствую!

Необходимо в Webpack 4 передать параметр в шаблон.

1. Нагуглил следующую реализацию: https://github.com/jantimon/html-webpack-plugin/bl...
2. Изменил сборку в соответствие с примером выше, в шаблоне параметр получил, все ок.

webpack.config.js:
new HtmlWebpackPlugin({
  template: 'src/page_landing_1.ejs',
  filename: "page_landing_1.html",
  templateParameters: {"prop": true},
}),

page_landing_1.ejs:
<% if(prop) { %>
<h1><%= prop %></h1>
<% } %>

Вопрос 1: насколько так правильно передавать параметры в шаблон? Какие есть реализации лучше?
Вопрос 2: если необходимо передавать динамические параметры? В данном случае, параметры передаются один раз при запуске сервера, чтобы параметры изменились, нужно перезапустить сервер...
Вопрос 3: при данной реализации, отваливается подключение других шаблонов (шапки и подвала) в текущий шаблон. Что делать?

Заюзал туториал https://ejs.co/ :
page_landing_1.ejs:
<%- include('header'); -%>
<% if(prop) { %>
<h1><%= prop %></h1>
<% } %>

Получил ошибку:
ERROR in ./src/page_landing_1.ejs (./node_modules/html-webpack-plugin/lib/loader.js!./src/page_landing_1.ejs)
    Module build failed (from ./node_modules/html-webpack-plugin/lib/loader.js):
    SyntaxError: missing ) after argument list
  • Вопрос задан
  • 43 просмотра
Решения вопроса 1
Mike_Ro
@Mike_Ro Автор вопроса
$ run войтивайти
Вопрос 3: при данной реализации, отваливается подключение других шаблонов (шапки и подвала) в текущий шаблон. Что делать?

Заюзать https://www.npmjs.com/package/ejs-webpack-loader .
webpack.config.js:
module: {
  rules: [
    {
      test: /\.ejs$/,
      use: [
        {
          loader: "ejs-webpack-loader",
          options: {
            data: {prop: true},
            htmlmin: true
          }
        }
      ]
    },
  ]
}

page_landing_1.ejs:
<%- include header.html -%>
<% if(prop) { %>
<h1><%= prop %></h1>
<% } %>
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы