我正在尝试多页 webpack 配置,并且有一个关于如何为登录页面加载图像与网站上其他页面不同的问题。登录页面构建到根目录,而其他页面构建到它们各自的子文件夹。
Webpack../images/为其他页面附加了正确的相对路径,但是登录页面需要保持为images/,因为它与图像文件夹一起位于根目录中。
如何配置 webpack<img src="images/00.jpg">以使登录页面保持不变,但<img src="../images/00.jpg">对所有其他页面进行更新?
这是源文件夹:
/ src /
-home.html
-about.html
js/
-home.js
-about.js
images/
-00.jpg
-01.jpg
scss/
-style.scss
这是 webpack 生成的构建文件夹:
/ public_html /
-index.html // relative links in this file become broken :(
-bundle.js
about/
-index.html
-bundle.js
images/
-00.jpg
-01.jpg
css/
-style.css
最后,这里是 webpack 的配置。请原谅代码墙,我决定包含整个配置,以防有更好的方法来设置它。
// webpack.config.js
const webpack = require('webpack');
const path = require('path');
const HtmlWebPackPlugin = require("html-webpack-plugin");
const MiniCssExtractPlugin = require("mini-css-extract-plugin");
const { CleanWebpackPlugin } = require('clean-webpack-plugin');
module.exports = {
entry: {
home: './src/js/home.js',
about: './src/js/about.js',
},
output: {
filename: (pathData) => {
return pathData.chunk.name === 'home' ? 'bundle.js' : '[name]/bundle.js';
},
path: path.resolve(__dirname, 'public_html')
},
module: {
rules: [
{
test: /\.js$/,
exclude: /node_modules/,
use: {
loader: "babel-loader"
}
},{
test: /\.html$/,
use: [
{
loader: "html-loader",
options: { minimize: true }
}
]
},{
test: /\.css$/,
use: [MiniCssExtractPlugin.loader, "css-loader"]
},{
test: /\.sass$|\.scss$/,
use: [
MiniCssExtractPlugin.loader,
{ loader: 'css-loader' },
{ loader: 'sass-loader' },
],
}
谢谢!另外,让我知道你喜欢这个配置文件!
慕容3067478
MYYA
相关分类