bootstrap webpack 打包多个html页面 公共header引用
时间: 2024-10-13 21:08:59 浏览: 25
在Bootstrap和Webpack的配合下,如果你需要打包多个HTML页面并共享公共header,你可以使用`HtmlWebpackPlugin`结合`CommonsChunkPlugin`。这允许你创建一个独立的“公用”脚本块,包含所有页面都会用到的部分,比如头部、导航栏等。
以下是步骤:
1. **安装必要的插件**:
安装`html-webpack-plugin` 和 ` CommonsChunkPlugin`:
```bash
npm install --save-dev html-webpack-plugin webpack-contrib-commons-chunk-plugin
```
2. **配置webpack配置文件**:
```javascript
const HtmlWebpackPlugin = require('html-webpack-plugin');
const CommonsChunkPlugin = require('webpack-contrib-commons-chunk-plugin');
module.exports = {
// 其他配置...
entry: { // 根据你的页面结构,这里可能是多对key-value对,如:entry: { pageA: './src/pageA.js', pageB: './src/pageB.js' }
pageA: ['./src/pageA.js'],
pageB: ['./src/pageB.js']
},
output: {
filename: '[name].bundle.js',
path: path.resolve(__dirname, 'dist')
},
optimization: {
splitChunks: {
chunks: 'all', // 将所有模块提取到公共chunk
name: 'commons'
}
},
plugins: [
new CommonsChunkPlugin({
names: ['commons'], // 创建名为"commons"的公共chunk
minChunks: Infinity // 使用所有的模块创建公共chunk
}),
// 为每个页面生成单独的HTML文件
new HtmlWebpackPlugin({
template: './public/index.html', // 这里假设所有页面都基于同个基础模板
filename: '[name].html', // 输出文件名
chunksSortMode: 'dependency', // 按依赖顺序排序
chunks: ['commons', 'runtime', 'main'] // 主要内容和公共部分
}),
// 对于其他页面的配置类似,只需要更改对应的entry和filename
// ... 更多HTMLWebpackPlugin配置
]
};
```
3. **公共header在HTML模板中引用**:
在你的HTML模板文件(如`./public/index.html`)中,通过`<head>`标签引入公共的CSS和JS文件:
```html
<head>
<!-- 引入公共header -->
<link rel="stylesheet" href="/dist/commons.css">
<script src="/dist/commons.bundle.js"></script>
<!-- 其他头部元素... -->
</head>
```
这样,每次当你构建新的HTML页面时,都会自动包含公共部分的脚本和样式,提高了代码复用效率。
阅读全文