webpack(二)--继续说说webpack输入和输出


webpack(二)--继续说说webpack输入和输出
将项目文件恢复一下,webpack.config.js中的内容如图。
webpack(二)--继续说说webpack输入和输出

webpack的entry(输入)

  webpack的输入部分由entry来配置,是webpack开始构建的起点。
entry可以是一个字符串,数组,也可以是对象

字符串和数组

字符串的时候,就是指定一个文件入口文件的位置。将指定的文件打包到一个文件中。
指定为数组的时候,会将数组中的所有文件打包到同一个文件中(也可以说是块)。

const path = require('path');

module.exports = {
  mode: 'development',
  // entry: './src/index.js', // 数组
  entry: ['./src/index.js', './src/index2.js'], // 数组
  output: {
    filename: 'main.js',
    path: path.resolve('./dist')
  }
}

对象

将入口指定为字符串或者数组,实际上是下面的简写。

...
	entry:{
		main: './src/index.js'
	}
...

可能是单页面比较常用吧,所以给单页面提供了一个简写。
使用多页面的时候可以指定多个入口,也就是多页面应用程序。每一个入口就是一个独立的页面。

...
	entry:{
		pageOne: './src/index.js',
		pageTwo: './src/index2.js'
	}
...

output 输出

  webpack的输出output配置必须是一个对象,输出配置只有这一个,即使有多个入口也是一个。

  output: {
    filename: 'main.js',
    path: path.resolve('./dist'),
  }

filename ,为输出的文件名,
当创建了多个入口的时候。要是用占位符确保每个文件具有唯一的名称。

const path = require('path');

module.exports = {
  mode: 'development',
  entry: {
    main1: './src/index.js',
    main2: './src/index2.js',
  },
  output: {
    filename: '[name].js',
    path: path.resolve('./dist'),
  }
}

webpack(二)--继续说说webpack输入和输出
输出的文件为main1.js和main2.js。

模板 描述
[hash] 模块标示符的hash
[chunkhash] chunk块的hash
[name] 模块名称
[id] 模块标示符
[query] 模块的query文件名后面的字符串

慢慢填坑