@ramanovsky

Как запретить Webpack генерировать стили, шаблоны ejs в бандл js?

Есть такой конфиг:

const wpConf = {
  entry: {
    index: "./src/pages/index.ejs",
    about: "./src/pages/about.ejs",
    styles: "./src/css/styles.css"
  },
  output: {
    clean: true,
    filename: 'js/[name].bundle.js',
    path: path.resolve(__dirname, 'dist'),
  },
  module: {
    rules: [
      {
        test: /\.css$/i,
        use: [
          MiniCssExtractPlugin.loader,
          "css-loader",
          { loader: "postcss-loader" },
        ],
      },
      {
        test: /\.ejs$/,
        use: [
          { loader: 'ejs-loader', options: { esModule: false } },
        ],
      }
    ],
  },
  plugins: [
    new MiniCssExtractPlugin({
      filename: 'css/[name].css',
      chunkFilename: 'css/[id].css',
    }),
    new HtmlWebpackPlugin({
      filename: `index.html`,
      chunks: ['index', 'styles'],
      template: `./src/pages/${title}.ejs`,
    }),
    new HtmlWebpackPlugin({
      filename: `about.html`,
      chunks: ['about', 'styles'],
      template: `./src/pages/${title}.ejs`,
    }),
  ],
  resolve: {
    extensions: ['.js', '.json', '.ejs'],
  },
};


Как убрать шаблоны ejs и стили из webpack бандла, webpack ?


У меня сейчас такой вывод показывается:

asset js/about.bundle.js 1.1 KiB [emitted] [minimized] (name: about)
  asset js/index.bundle.js 1.1 KiB [emitted] [minimized] (name: index)
  asset js/runtime.bundle.js 924 bytes [emitted] [minimized] (name: runtime)
  asset js/styles.bundle.js 138 bytes [emitted] [minimized] (name: styles)
assets by path *.html 1.12 KiB
  asset about.html 572 bytes [emitted]
  asset index.html 570 bytes [emitted]
asset css/styles.css 139 bytes [emitted] (name: styles)

Я хочу чтобы webpack не генерировал файл `styles.bundle.js` ведь он уже сгенерировал `css/styles.css`, зачем мне еще какой то пустой файл с js, там находится это:

"use strict";(self.webpackChunkfrontend_boilerplate=self.webpackChunkfrontend_boilerplate||[]).push([[532],{894:()=>{}},e=>{e(e.s=894)}]);


Так же и с ejs, он не удаляет код шаблонизатора:

(self.webpackChunkfrontend_boilerplate=self.webpackChunkfrontend_boilerplate||[]).push([[179],{617:(module,__unused_webpack_exports,__webpack_require__)=>{module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<!DOCTYPE html>\n<html class="no-js" lang="ru">\n<head>\n  '+(null==(__t=__webpack_require__(89)({title}))?"":__t)+'\n</head>\n<body class="body-content">\n  '+(null==(__t=__webpack_require__(732)())?"":__t)+"\n  "+(null==(__t=__webpack_require__(162)())?"":__t)+"\n</body>\n</html>\n";return __p}},162:module=>{module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<footer class="footer">\n  <p>...</p>\n</footer>\n';return __p}},89:module=>{module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<meta charset="utf-8">\n<meta name="viewport" content="width=device-width, initial-scale=1.0">\n<title>'+(null==(__t=title)?"":__t)+"</title>\n";return __p}},732:module=>{module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<header class="header">\n</header>\n';return __p}}},_=>{_(_.s=617)}]);
  • Вопрос задан
  • 85 просмотров
Пригласить эксперта
Ответы на вопрос 1
@twolegs
Вы получаете те файлы, которые указали в entry.
Я хочу чтобы webpack не генерировал файл `styles.bundle.js` ведь он уже сгенерировал `css/styles.css`,

Уберите `styles: "./src/css/styles.css"` из entry. По-хорошему вам нужен index.js, внутри которого нужно импортировать весь ваш css. Совсем без js-файла обойтись не получится, т.к. все же главная задача вебпака - это собирать js.
Так же и с ejs,

То же самое, убрать все ejs из entrypoints. HtmlWebpackPlugin сгенерирует html по шаблону, в entry ничего дополнительно указывать не надо.
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы