Je suis en train de faire un React w/configuration Webpack et j'ai du mal à faire ce qui semble être une tâche simple. Je veux que webpack inclue des images et les réduise comme moi avec gulp mais je peux. ' Je veux juste pouvoir lier une image dans mon css comme ceci:
/* ./src/img/background.jpg */
body { background: url('./img/background.jpg'); }
J'ai tous mes dossiers css/js/img dans un dossier src. Webpack renvoie dans un dossier dist, mais je ne vois pas comment y obtenir des images.
Voici la configuration de mon webpack:
var path = require('path');
var webpack = require('webpack');
var HtmlWebpackPlugin = require('html-webpack-plugin');
module.exports = {
devtool: 'cheap-eval-source-map',
entry: [
'webpack-dev-server/client?http://localhost:8080',
'webpack/hot/dev-server',
'./src/index.js'
],
output: {
path: path.join(__dirname, 'dist'),
// publicPath: './dist',
filename: 'bundle.js'
},
plugins: [
new webpack.HotModuleReplacementPlugin(),
new HtmlWebpackPlugin({
template: './src/index.html'
})
],
module: {
loaders: [{
exclude: /node_modules/,
test: /\.js?$/,
loader: 'babel'
}, {
test: /\.scss$/,
loader: 'style!css!sass'
}, {
test: /\.(png|jpg)$/,
loader: 'file-loader'
}]
},
devServer: {
historyApiFallback: true,
contentBase: './dist',
hot: true
}
};
J'étais coincé avec un problème similaire et j'ai constaté que vous pouvez utiliser les instructions url-loader
pour résoudre les instructions "url()"
dans votre code CSS, comme toute autre instruction require ou import.
Pour l'installer:
npm install url-loader --save-dev
Il installera le chargeur capable de convertir les chemins résolus en chaînes BASE64.
Dans votre fichier de configuration webpack, utilisez url-loader dans loader
{
test: /\.(png|jpg)$/,
loader: 'url-loader'
}
Assurez-vous également que vous spécifiez correctement votre chemin public et le chemin des images que vous essayez de charger.