我已将webpack用于我的项目。编译存储在dist / img文件夹中但在css文件中的webpack背景图像后,它显示dist / img / filename..so图像加载不正确...如果图像路径../ img / file,它将起作用..我该怎么做..
这是我的webpack.config.js文件
module.exports = (env = {}) => {
return {
entry: ['./src/js/app.js', './src/scss/main.scss'],
output: {
filename: 'dist/js/app.js',
},
module: {
rules: [
{
test: /\.scss$/,
use: [
{
loader: 'file-loader',
options: {
name: '[name].css',
outputPath: 'dist/css/'
}
},
{
loader: 'extract-loader'
},
{
loader: 'css-loader'
},
{
loader: 'postcss-loader'
},
{
loader: 'sass-loader'
}
]
},
{
test: /\.(jpe?g|png|gif|svg)$/i,
use: [
{
loader: "file-loader?name=[name].[ext]&outputPath=dist/img/"
}
]
}
]
}
}
};
答案 0 :(得分:0)
您在输出和加载器配置中犯了一个错误,请按照以下步骤操作:
var path = require('path');
module.exports = (env = {}) => {
return {
entry: ['./src/js/app.js', './src/scss/main.scss'],
output: {
filename: '[name].bundle.js',
path: path.resolve(__dirname, 'dist'),
publicPath: '/'
},
module: {
rules: [
{
test: /\.scss$/,
use: [
{
loader: 'file-loader',
options: {
name: '[name].css',
outputPath: 'css/'
}
},
{
loader: 'extract-loader'
},
{
loader: 'css-loader'
},
{
loader: 'postcss-loader'
},
{
loader: 'sass-loader'
}
]
},
{
test: /\.(jpe?g|png|gif|svg)$/i,
loader: "file-loader?name=img/[name].[ext]"
}
]
}
}
};
无论如何,您还可以使用CopyWebpackPlugin
将资产复制到dist
中。
我希望这会有所帮助