面试题答案
一键面试入口配置
在Webpack中配置多页应用的多个入口文件,可以使用对象形式的配置。假设项目中有两个页面page1
和page2
,其入口文件分别为src/page1/index.js
和src/page2/index.js
,配置如下:
module.exports = {
entry: {
page1: './src/page1/index.js',
page2: './src/page2/index.js'
}
};
出口配置
为了使每个入口对应的输出文件放在各自独立的目录下,并且文件名带上哈希值,可以这样配置output
:
module.exports = {
output: {
path: path.resolve(__dirname, 'dist'),
filename: '[name]/[name].[contenthash].js'
}
};
这里path
指定了输出的根目录为dist
,filename
中的[name]
代表入口的名称,这样每个入口文件就会输出到以入口名称命名的目录下,[contenthash]
会根据文件内容生成哈希值,实现缓存控制。完整示例如下:
const path = require('path');
module.exports = {
entry: {
page1: './src/page1/index.js',
page2: './src/page2/index.js'
},
output: {
path: path.resolve(__dirname, 'dist'),
filename: '[name]/[name].[contenthash].js'
}
};