Webpack的静态资源引入优化(Asset Resource Optimization)是指通过优化静态资源的处理和引入方式,以减少打包后的文件体积,提高页面加载速度。

以下是一些常用的优化配置:

  1. 压缩资源文件:使用插件如 TerserPlugin 压缩 JavaScript 文件,使用插件如 OptimizeCSSAssetsPlugin 压缩 CSS 文件。
const TerserPlugin = require('terser-webpack-plugin');
const OptimizeCSSAssetsPlugin = require('optimize-css-assets-webpack-plugin');
 
module.exports = {
  // ...
  optimization: {
    minimizer: [
      new TerserPlugin(),
      new OptimizeCSSAssetsPlugin()
    ]
  },
  // ...
};
  1. 合并资源文件:通过配置合适的代码分割策略,将多个小文件合并为一个单独的文件。
module.exports = {
  // ...
  optimization: {
    splitChunks: {
      chunks: 'all'
    }
  },
  // ...
};

上述配置能够将公共的代码提取出来,使得每个页面只需要引入一份公共代码。

  1. 使用CDN引入外部资源:将一些不常变化的外部资源,如jQuery、Bootstrap等,通过CDN引入,减少打包体积。
module.exports = {
  // ...
  externals: {
    jquery: 'jQuery'
  },
  // ...
};

在上述配置中,我们将外部资源 jQuery 指定为全局变量 jQuery,通过 CDN 引入,而不是打包进入最终的输出文件。

  1. 使用文件指纹(hash):通过在输出文件名中加入文件指纹,可以实现在文件内容变化时,生成新的文件名,从而缓存新的文件。
module.exports = {
  // ...
  output: {
    filename: '[name].[contenthash].js'
  },
  // ...
};

上述配置中,我们使用 [contenthash] 占位符为输出文件名加入文件指纹。

这些是一些常见的静态资源引入优化配置,通过合理的配置,可以降低打包后的文件大小,提高页面加载速度。