目录

解析 ES6

使用 babel-loader

babel 的配置文件是:.babelrc(推荐使用 babel.config.js)。

资源解析:增加 ES6 的 babel 配置。

// babel.config.js
module.exports = {
  presets: [
    [
      '@babel/preset-env',
      {
        corejs: 3,
        modules: false,
        useBuiltIns: 'usage',
      },
    ],
  ],
  plugins: [
    '@babel/plugin-proposal-class-properties',
    [
      '@babel/plugin-transform-runtime',
      {
        regenerator: false,
        useESModules: true,
      },
    ],
  ],
}

解析 CSS

css-loader 用于加载 .css 文件,并且转换成 CommonJS 对象。 style-loader 将样式通过 <style> 标签插入到 head 中。

// webpack.config.js
module.exports = {
  //...
  module: {
    rules: [
      {
        test: /\\\\.css$/,
        use: [
          'style-loader',
          'css-loader'
        ]
      }
    ]
  }
}

解析图片、字体

file-loader 用于处理文件、字体。 url-loader 类似于 file-loader 也可以处理文件、字体。但如果文件大小小于字节限制,则可以将文件转换为 base64 URI。

// webpack.config.js
module.exports = {
  //...
  module: {
    rules: [
      {
        test: /\\\\.(png|jpg|gif|jpeg)$/,
        use: [
          {
            loader: 'url-loader',
            options: {
              limit: 10240,
            }
          }
        ]
      },
      {
        test: /\\\\.(woff|woff2|eot|ttf|otf)$/,
        use: 'file-loader',
      },
    ],
  },
}

清理构建目录

使用 clean-webpack-plugin,默认会删除 output 指定的输出目录。