如何在webpack中处理base64图像?

时间:2016-09-18 06:44:17

标签: css image build base64 webpack

我在我的项目中使用webpack。我试图使用toastr

Toastr css文件在url中使用base64,如下所示:

#toast-container > .toast-success {
    background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADsSURBVEhLY2AYBfQMgf///3P8+/evAIgvA/FsIF+BavYDDWMBGroaSMMBiE8VC7AZDrIFaMFnii3AZTjUgsUUWUDA8OdAH6iQbQEhw4HyGsPEcKBXBIC4ARhex4G4BsjmweU1soIFaGg/WtoFZRIZdEvIMhxkCCjXIVsATV6gFGACs4Rsw0EGgIIH3QJYJgHSARQZDrWAB+jawzgs+Q2UO49D7jnRSRGoEFRILcdmEMWGI0cm0JJ2QpYA1RDvcmzJEWhABhD/pqrL0S0CWuABKgnRki9lLseS7g2AlqwHWQSKH4oKLrILpRGhEQCw2LiRUIa4lwAAAABJRU5ErkJggg==") !important;}

以下是我的webpack配置:

'use strict'

var webpack = require('webpack');
var path = require('path');
var extractTextWebpackPlugin = require('extract-text-webpack-plugin');

module.exports = {
devtool: 'cheap-module-eval-source-map',
entry: [
    './modules/index.js'
],
output: {
    path: path.join(__dirname, 'public'),
    filename: 'bundle.js'
},
module: {
    noParse: [
        /aws\-sdk/,
    ],
    loaders: [{
            test: /\.css$/,
            exclude: /node_modules/,
            include: path.resolve(__dirname, 'public/stylesheet'),
            loader: extractTextWebpackPlugin.extract('style-loader', 'css-loader')
        },

        {
            test: /\.js$/,
            exclude: /node_modules/,
            include: __dirname,
            loaders: ['babel']
        },
        {
            test: /\.(png|jpg|svg)$/,
            exclude: /node_modules/,
            loader: 'url-loader?limit=2000',
            include: [
                path.resolve(__dirname, 'public')
            ]
        }
    ]
},
plugins: [
    new extractTextWebpackPlugin("styles.css")
]
}

当我在终端中运行webpack时,我收到错误

ERROR in ./~/toastr/build/toastr.css
Module parse failed: /Users/Admin/Downloads/kamal/development/client-app/node_modules/toastr/build/toastr.css Unexpected token (1:0)

如何使用webpack处理base64网址?

1 个答案:

答案 0 :(得分:2)

这个问题已经解决了。

我排除了node_modules。由于css-loader配置为排除node_modules,因此无法处理toastr.css文件。只需消除exclude: /node_modules/

在这种情况下,正确的配置如下:

loaders: [{
        test: /\.css$/,
        include: path.resolve(__dirname, 'public/stylesheet'),
        loader: extractTextWebpackPlugin.extract('style-loader', 'css-loader')
    },