Webpack与uglify结合使用SASS加载器会出现错误,否则可以正常工作



我有一个webpack配置,该配置毫无问题地编译了我所有的ES2015。它是丑陋的,等等。

这是配置:

const webpack = require('webpack');
const ExtractTextPlugin = require('extract-text-webpack-plugin');
const nodeEnv = process.env.NODE_ENV || 'production';
module.exports = {
    devtool: 'source-map',
    entry: {
      filename: './src/index.js'
    },
    // entry: ['./src/index.js', './src/scss/main.scss'],
    output: {
        filename: './app/index.min.js'
    },
    module: {
        loaders: [{
            test: /.js$/,
            exclude: /node_modules/,
            loader: 'babel-loader',
            query: {
                presets: [
                    ['es2015', { 'modules': false }]
                ]
            }
        }]//,
        // rules: [{
        //     test: /.css$/,
        //     use: ExtractTextPlugin.extract({
        //         use: 'css-loader?importLoaders=1',
        //     }),
        // }, {
        //     test: /.scss$/,
        //     use: ExtractTextPlugin.extract({
        //         fallback: 'style-loader',
        //         use: ['css-loader', 'sass-loader'],
        //         publicPath: '/app'
        //     })
        // }]
    },
    plugins: [
        new webpack.DefinePlugin({
            'proccess.env': { NODE_ENV: JSON.stringify(nodeEnv) }
        }),
        // new ExtractTextPlugin({
        //     filename: './app/main.css',
        //     disable: false,
        //     allChunks: true
        // }),
        new webpack.optimize.UglifyJsPlugin({
            compress: { warnings: false },
            output: { comments: false },
            sourceMap: true
        })
    ]
}

但是,当我取消插件和加载程序并替换条目文件时,我会从uglifyjs出现一个错误:

ERROR in ./app/index.min.js from UglifyJs
Invalid assignment [./src/js/modules/requests.js:19,0][./app/index.min.js:2083,38]

是正确的,它不知道该如何处理=>函数。但是,为什么额外的装载机会弄乱装载机的顺序(现在这是问题(?始终为解决这个问题或一个很好的例子(找不到自己(开放,以解决此问题

您同时使用module.rulesmodule.loaders。当WebPack看到module.rules时,它会完全忽略module.loaders,这意味着您的.js规则不存在,因此您根本不将JavaScript移动。module.loaders仅出于兼容原因而存在,您只能使用module.rules

module: {
    rules: [{
        test: /.js$/,
        exclude: /node_modules/,
        loader: 'babel-loader',
        options: {
            presets: [
                ['es2015', { 'modules': false }]
            ]
        }
    }, {
        test: /.css$/,
        use: ExtractTextPlugin.extract({
            use: 'css-loader?importLoaders=1',
        })
    }, {
        test: /.scss$/,
        use: ExtractTextPlugin.extract({
            fallback: 'style-loader',
            use: ['css-loader', 'sass-loader'],
            publicPath: '/app'
        })
    }]
}

最新更新