webpack2 如何作loader的模块匹配

发布于 2022-09-04 12:17:12 字数 1361 浏览 20 评论 0

需求如下:

a.js 中引入两个css模块,分辨是mobile.css和pc.css,我通过extractTextPlugins想分别输出两个css文件

但是问题:

分不出来。。。。

webpack.config.js

let VERSION = '1.3.0';
let webpack = require('webpack');
let path = require('path');
let ExtractTextPlugin = require('extract-text-webpack-plugin');
let pcCss = new ExtractTextPlugin('./[name].css')
let mobileCss = new ExtractTextPlugin('./[name].css')
module.exports = {
    entry: {
        'pc': './iui-webpack/entry.pc.js',
        'wap': './iui-webpack/entry.wap.js'
    },
    output: {
        path: __dirname + '/dist',
        filename: 'iui.[name].' + VERSION + '.js'
    },
    plugins: [
        // new webpack.optimize.UglifyJsPlugin(),
        pcCss,
        mobileCss
    ],
    module: {
        rules: [{
            test: /\.js$/,
            use: {
                loader: 'babel-loader',
                query: {
                    presets: ['es2015']
                }
            }
        }, {
            test: /\.scss$/,
            use: pcCss.extract({ fallbackLoader: 'style-loader', loader: ['css-loader', 'sass-loader'] })
        }, 
        {
            test: /\.scss$/,
            loader: mobileCss.extract({
                fallbackLoader: 'style-loader',
                loader: ['css-loader', 'sass-loader']
            })
        }
        ]
    }
};

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

幸福丶如此 2022-09-11 12:17:12

ExtractTextPlugin 对应的每个 entry 只能抽取出一个文件,所以你需要写两个 entry 如:

  • pc.js 包含 pc.css

  • mobile.js 包含 mobile.css


PS: 我们自己基于 webpack 写了个工具 dool 支持 entrycssless 文件,可参见这个 multi page demo

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文