webpack的多入口多出口配置

3,633 阅读1分钟

webpack的多入口多出口配置

// webpack.prod.js文件配置

let path = require('path');

let HtmlWebpackPlugin = require('html-webpack-plugin');

let {CleanWebpackPlugin} = require('clean-webpack-plugin');

module.exports = {
  mode: 'production', // 打包环境(生产环境)
  // 多入口时,entry的值是一个对象
  entry: {
    // 属性名是打包后生成的js文件名,属性值是入口文件
    index: './src/index.js',
    a: './src/a.js',
  },
  output: {
    // filename: 'prod.[hash:6].js', // 单出口
    filename: '[name].js', // 对应着多入口的属性名[name],这里 [name]是一个变量
    // 打包后生成两个js文件:index.js 和 a.js
    path: path.resolve(__dirname, 'prod'),
    // 将打包后的文件都存放在根目录下的prod文件夹中
  },
  plugins: [
  
    new CleanWebpackPlugin(), // 清除之前打包生成的文件
    // 按照模板生成新的html文件的同时引入指定的js文件
    new HtmlWebpackPlugin({
      filename: 'index.html', // 生成的html文件名
      template: './public/index.html', // 模板html
      chunks: ['index'], // 指定生成的html文件引入的是哪些js文件
      minify: false,  // 是否压缩,生产环境默认就是压缩的
    }),
    new HtmlWebpackPlugin({
      filename: 'other.html',
      template: './public/other.html',
      chunks: ['a', 'index'], // 多入口时,指定该新的html引入的是哪个js文件,不写的话默认都引入,这里引入a.js和index.js文件
      minify: false, //不压缩,因为生产环境默认是压缩的
    }),
  ]
}

打包后的项目结构

在这里插入图片描述

这里我是把配置写在了webpack.prod.js文件中,所以需要去packag.json中配置,然后运行 npm run server 即可 在这里插入图片描述