webpack(二)--继续说说webpack输入和输出
将项目文件恢复一下,webpack.config.js中的内容如图。
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'),
}
}
输出的文件为main1.js和main2.js。
模板 | 描述 |
---|---|
[hash] | 模块标示符的hash |
[chunkhash] | chunk块的hash |
[name] | 模块名称 |
[id] | 模块标示符 |
[query] | 模块的query文件名后面的字符串 |
慢慢填坑