Не удается загрузить веб-пакет изображений (4.41.0) - PullRequest
2 голосов
/ 25 января 2020

Я пытаюсь загрузить файл изображения jpg, используя Webpack, но получаю следующую ошибку: Uncaught Error: Module build failed (from ./node_modules/mini-css-extract-plugin/dist/loader.js): ModuleParseError: Module parse failed: Unexpected character '�' (1:0)

Я использую загрузчик файлов, поэтому я не уверен, что не так ...

Это мой webpack.config.js файл:

 module.exports = {
  context: __dirname,
  entry: {
    frontend: ['./src/index.js', './src/sass/style.scss'],
    customizer: './src/customizer.js'
  },
  output: {
    path: path.resolve(__dirname, 'public'),
    filename: '[name]-bundle.js'
  },
  mode: 'development',
  devtool: 'cheap-eval-source-map',
  module: {
    rules: [
    {
      test: /\.(jpe?g|JPG|png|gif)\$/,
      use: [
        {
          loader: 'file-loader',
          options: {
            publicPath: 'public/images',
            name: '[name].[ext]'
         }
       }
     ]
   }

Мое изображение в данный момент хранится в каталоге src/images. Чего мне не хватать?

Спасибо за вашу помощь!

Редактировать: Вот CSS, который я использую, чтобы вытянуть изображение:

#header {
  background: url('../images/header.JPG') no-repeat center center fixed;
  background-size: cover;
}

Редактировать: Вот весь мой webpack.config.js файл:

const path = require('path');
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
const UglifyJsPlugin = require('uglifyjs-webpack-plugin');
const OptimizeCssAssetsPlugin = require('optimize-css-assets-webpack-plugin');
const BrowserSyncPlugin = require('browser-sync-webpack-plugin');
const StyleLintPlugin = require('stylelint-webpack-plugin');

module.exports = {
  context: __dirname,
  entry: {
    frontend: ['./src/index.js', './src/sass/style.scss'],
    customizer: './src/customizer.js'
  },
  output: {
    path: path.resolve(__dirname, 'public'),
    filename: '[name]-bundle.js'
  },
  mode: 'development',
  devtool: 'cheap-eval-source-map',
  module: {
    rules: [
      {
        enforce: 'pre',
        exclude: /node_modules/,
        test: /\.jsx$/,
        loader: 'eslint-loader'
      },
      {
        test: /\.jsx?$/,
        loader: 'babel-loader'
      },
      {
        test: /\.s?css$/,
        use: [MiniCssExtractPlugin.loader, 'css-loader', 'sass-loader']
      },
      {
        test: /\.svg$/,
        loader: 'svg-sprite-loader',
        options: {
          extract: true,
          spriteFilename: 'svg-defs.svg'
        }
      },
      {
        test: /\.(jpe?g|JPG|png|gif)\$/,
        use: [
          {
            loader: 'file-loader',
            options: {
              publicPath: 'public/images',
              name: '[name].[ext]'
            }
          }
        ]
      }
    ]
  },
  plugins: [
    new StyleLintPlugin(),
    new MiniCssExtractPlugin({
      filename: '[name].css'
    }),
    new BrowserSyncPlugin({
      files: '**/*.php',
      proxy: 'http://mysite.test/'
    })
  ],
  optimization: {
    minimizer: [new UglifyJsPlugin(), new OptimizeCssAssetsPlugin()]
  }
};```

Ответы [ 2 ]

1 голос
/ 26 января 2020
test: /\.(JPG|gif|svg|gif|png)(\?v=[0-9]\.[0-9]\.[0-9])?$/,
            include: SRC,
            use: [{
                loader: 'file-loader'
            }]
             .
             .
             .
0 голосов
/ 26 января 2020
  • Сначала попробуйте заменить свой тест sass на регулярные выражения следующим образом:
    test: /\.(sass|scss)$/

  • , если это не сработало попробуйте заменить все ваше правило следующим образом:

            {
                test: /\.(sass|scss)$/,
                use: [
                    MiniCssExtractPlugin.loader, 
                    {
                        loader: 'css-loader',
                    }, 
                    {
                        loader: 'sass-loader',
                    } 
                ]
            }
  • также удалите {filename: '[name].css'} из MiniCssExtractPlugin

двумя упомянутыми мною попытками сохранить его просто так:

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