Оптимизируйте и используйте изображения в HTML-шаблонах в Webpack. - PullRequest
0 голосов
/ 22 ноября 2018

вопрос новичка здесь.

Я хотел бы оптимизировать изображения, на которые есть ссылки в моих HTML-шаблонах.

Я использую image-webpack-loader (пытаюсь).Вот мой полный конфиг:

const path = require('path');
const UglifyJsPlugin = require('uglifyjs-webpack-plugin');
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
const OptimizeCSSAssetsPlugin = require('optimize-css-assets-webpack-plugin');
const sassLintPlugin = require('sass-lint-webpack');

module.exports = env => {
  return {
    entry: {
      index: ['./client/index.js',],
    },
    output: {
      path: path.resolve(__dirname, 'public', 'static'),
      publicPath: env.prod ? '/mariposa/static/' : '/',
      filename: '[name].js'
    },
    devServer: {
      contentBase: './public'
    },
    module: {
      rules: [
        {
          test: /\.jsx?$/,
          exclude: /node_modules/,
          use: {
            loader: 'babel-loader'
          }
        },
        {
          test: /\.scss$/,
          use: [
            MiniCssExtractPlugin.loader,
            'css-loader',
            'sass-loader',
          ]
        },
        {
          test: /\.(gif|png|jpe?g|svg)$/i,
          use: [
            'file-loader',
            {
              loader: 'image-webpack-loader',
              options: {
                mozjpeg: {
                  progressive: true,
                  quality: 45,
                },
              },
            },
          ],
        },
        {
          test: /\.(woff|woff2|eot|ttf|otf)$/,
          use: [
            'file-loader'
          ]
        },
      ],
    },
    optimization: {
      minimizer: [
        new UglifyJsPlugin({
          cache: true,
          parallel: true,
          sourceMap: false
        }),
        new OptimizeCSSAssetsPlugin({})
      ]
    },
    plugins: [
      new sassLintPlugin({
        configPath: '.sass-lint.yml',
      }),
      new MiniCssExtractPlugin({
        filename: '[name].css',
        chunkFilename: '[id].css',
      })
    ],
    mode: env.prod ? 'production' : 'development'
  }
};

Изображения работают нормально, если я использую их в scss или js, они не работают, если я использую простой простой тег img в html.

Я полагаю, мне нужно как-то сделать веб-пакет "осведомленным" о моих HTML-шаблонах?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...