2016-02-12 14 views
22

Bir Web/Web Paketi kurulumu gerçekleştiriyorum ve basit bir görev gibi görünmesi gereken bir şey yapmak için uğraşıyorum. Webpack'in görüntüleri dahil etmesini ve onları gulp gibi minimize etmesini istiyorum ama anlayamıyorum. Sadece şöyle benim css bir görüntü bağlamak mümkün istiyorum:Webpack ile css'de görüntüler nasıl kullanılır?

/* ./src/img/background.jpg */ 

body { background: url('./img/background.jpg'); } 

Bir src klasörünün içinde benim css/js/img klasörlerin hepsi var. Webpack bir klasöre çıktı, ancak görüntüleri nasıl alacağımı anlayamıyorum.

İşte benim webpack kurgusunda:

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 
    } 
}; 

cevap

29

Ben benzer bir sorun ile sıkışmış ve başka gerektiren veya ithalat ifadeleri olarak CSS'nizde "url()" ifadelerini çözmek için url-loader kullanabilirsiniz bulunmuştur.

yüklemek için:

npm install url-loader --save-dev

Bu BASE64 dizeleri olarak çözümlenen yolları dönüştürebilirsiniz yükleyici kuracaktır. yükleyiciler Ayrıca

{ 
    test: /\.(png|jpg)$/, 
    loader: 'url-loader' 
} 

doğru şekilde kamu yolunu belirterek ve yüklemeye çalışıyorsanız görüntülerin yolu emin olun

daki webpack yapılandırma dosyası kullanımı url-yükleyici olarak

.

+0

@ user3737841 sorununuzu çözüyor mu? – WitVault

+0

Peki benim webpack-dev sunucum/dist hizmet veriyor ve resimlerim/src içerisindedir, bu yüzden .css dosyasındaki görüntüleri nasıl referans alacağımı biliyor musunuz? Resimlerin bundle.js ile toplanması mı gerekiyor?/Dist klasörü sadece webpack-dev-server üzerinden sunulan sanal bir ürün olduğu için/dis'e nasıl gidileceğinden emin değilim. – user3737841

+2

@ user3737841 Stil sayfalarınızdaki görüntüleri 'gerektiren' olabilir. Örneğin, arka plan resmi: url ('../ assets/img/logo-dark.png') '. Yolu düzeltmek için sadece denemelisiniz. –