webpack 配置多文件

2021-04-13  本文已影响0人  _旁观者_

module.exports = {
  entry: {
    'page1': './src/pages/page1/app.js', // 页面1
    'page2': './src/pages/page2/app.js', // 页面2
  },
  output: {
    path: path.resolve(__dirname, './dist'),
    filename: 'js/[name]/[name]-bundle.js', // filename不能写死,只能通过[name]获取bundle的名字
  }
}
module.exports = {
  plugins: [
    new HtmlWebpackPlugin(
    {
      template: './src/pages/page1/index.html',
      chunks: ['page1'],
    }
  ),
  new HtmlWebpackPlugin(
    {
      template: './src/pages/page2/index.html',
      chunks: ['page2'],
    }
  ),
  ]
}

HtmlWebpackPlugin一定要配 chunks,否则所有页面的js都会被注入到当前html里

module.exports = {
  optimization: {
    splitChunks: {
      cacheGroups: {
        // 打包业务中公共代码
        common: {
          name: "common",
          chunks: "initial", // 共享的代码
          priority: 0, // 优先级
          minChunks: 2, // 同时引用了2次才打包
        },
        // 打包第三方库的文件
        vendor: {
          name: "vendor",
          test: /[\\/]node_modules[\\/]/,
          chunks: "initial",
          priority: 10,
          minChunks: 2, // 同时引用了2次才打包
        }
      }
    },
    runtimeChunk: { name: 'manifest' } // 运行时代码
  }
}

多页面打包的原理就是:配置多个entry和多个HtmlWebpackPlugin


optimization 参考

上一篇 下一篇

猜你喜欢

热点阅读