Ressources partagées dans Webpack

Essayons maintenant les ressources partagées. Faisons en sorte que les images de moins de 8kb soient converties en base64, et que les images plus grandes que cette taille soient copiées dans un fichier :

webpack.config.jsexport default {
  entry: './src/index.js',
  output: {
    filename: 'bundle.js',
    path: path.resolve('dist'),
  },
  module: {
    rules: [
      {
        test: /\.png$/,
        type: 'asset',
      }
    ]
  },
  plugins: [
    new HtmlWebpackPlugin(),
  ],
};

On peut modifier la limite de taille de l'image. Par exemple, imposons une limite de 4kb :

webpack.config.jsexport default {
  entry: './src/index.js',
  output: {
    filename: 'bundle.js',
    path: path.resolve('dist'),
  },
  module: {
    rules: [
      {
        test: /\.png$/,
        type: 'asset',
        parser: {
          dataUrlCondition: {
            maxSize: 4 * 1024 // 4kb
          }
        }
      }
    ]
  },
  plugins: [
    new HtmlWebpackPlugin(),
  ],
};
Задание 1

Connectez à point d'entrée plusieurs images de tailles différentes. Vérifiez quel type de transformation est appliqué pour chaque image.