zoukankan      html  css  js  c++  java
  • webpack css打包为一个css

    1、安装

    npm install extract-text-webpack-plugin --save-dev

    2、项目目录:

    index文件夹下的index.css:

    body{
        background-color: #ccc;
    }
    .flex-div{
        display: flex;
    }

    index文件夹下的index2.css:

    p{
        text-indent: 2em;
    }

    index文件夹下的index-less.less:

    .layer{
        width: 600px;
        height: 200px;
        background-color: green;
        > div{
            width: 400px;
            height: 200px;
            background:url(../../img/ais.jpg);
        }
        .flex{
            display: flex;
        }
    }

    index文件夹下的index.js:

    require('./index-less.less');
    require('./index.css');
    require('./index2.css');
    require('../module.js');
    console.log('首页-index文件');

    login文件夹下的index.js:

    require('./login.css');
    require('../module.js');
    console.log('登录页-index文件');

    login文件夹下的login.css:

    div{
        margin: 0;
        padding: 0;
    }

    3、webpack.config.js

    //处理html模板
    var htmlWebpackPlugin = require('html-webpack-plugin');
    //处理共用、通用的js
    var webpack = require('webpack');
    //css单独打包
    var ExtractTextPlugin = require("extract-text-webpack-plugin");
    
    module.exports = {
        //    entry: './src/app.js',
        entry: {
            //通用模块
            'common': ['./src/page/common/index.js'],
            'login': ['./src/page/login/index.js'],
            'index': ['./src/page/index/index.js']
        },
        output: {
            path: __dirname + '/dist',
            filename: 'js/[name].js'
        },
        //将外部变量或者模块加载进来
        externals: {
            'jquery': 'window.jQuery'
        },
        module: {
            loaders: [{
                    test: /.js$/,
                    //以下目录不处理
                    exclude: /node_modules/,
                    //只处理以下目录
                    include: /src/,
                    loader: "babel-loader",
                    //配置的目标运行环境(environment)自动启用需要的 babel 插件
                    query: {
                        presets: ['latest']
                    }
                },
                //css 处理这一块
                {
                    test: /.css$/,
                    use: ExtractTextPlugin.extract({
                        fallback: "style-loader",
                        use: [
                            //'style-loader',
                            {
                                loader: 'css-loader',
                                options: {
                                    //支持@important引入css
                                    importLoaders: 1
                                }
                            },
                            {
                                loader: 'postcss-loader',
                                options: {
                                    plugins: function() {
                                        return [
                                            //一定要写在require("autoprefixer")前面,否则require("autoprefixer")无效
                                            require('postcss-import')(),
                                            require("autoprefixer")({
                                                "browsers": ["Android >= 4.1", "iOS >= 7.0", "ie >= 8"]
                                            })
                                        ]
                                    }
                                }
                            }
                        ]
                    })
                },
                //less 处理这一块
                {
                    test: /.less$/,
                    use: ExtractTextPlugin.extract({
                        fallback: "style-loader",
                        use: [
                            //'style-loader',
                            {
                                loader: 'css-loader',
                                options: {
                                    //支持@important引入css
                                    importLoaders: 1
                                }
                            },
                            {
                                loader: 'postcss-loader',
                                options: {
                                    plugins: function() {
                                        return [
                                            //一定要写在require("autoprefixer")前面,否则require("autoprefixer")无效
                                            require('postcss-import')(),
                                            require("autoprefixer")({
                                                "browsers": ["Android >= 4.1", "iOS >= 7.0", "ie >= 8"]
                                            })
                                        ]
                                    }
                                }
                            },
                            'less-loader'
                        ]
                    })
                },
                //处理html模板
                {
                    test: /.html$/,
                    use: {
                        loader: 'html-loader'
                    }
                },
                //处理图片
                {
                    test: /.(png|jpg|gif|svg)$/i,
                    loaders: [
                        //小于8k的图片编译为base64,大于10k的图片使用file-loader            
                        'url-loader?limit=8192&name:img/[name]-[hash:5].[ext]',
                        //图片压缩
                        'image-webpack-loader'
                    ]
    
                }
            ]
        },
        plugins: [
            new htmlWebpackPlugin({
                template: 'index.html',
                filename: 'index.html'
            }),
            // 独立通用模块到js/common.js
            new webpack.optimize.CommonsChunkPlugin({
                //公共块的块名称
                name: 'common',
                //生成的文件名
                filename: 'js/common.js'
            }),
            new ExtractTextPlugin('css/[name].css')
        ]
    }

    4、执行

    npm run webpack

    5、效果

     

  • 相关阅读:
    c#实现windows远程桌面连接程序
    基于.NET平台常用的框架整理
    c#无限循环线程如何正确退出
    c# 内存的具体表现- 通用类型系统 深拷贝 浅拷贝 函数传参
    coco2d-x convertToWorldSpace介绍
    Effective C++条款20:宁以pass-by-reference-to-const替换pass-by-value。Test code
    函数指针与指针函数返回值的区别
    游戏开发那些事
    lua 根据指定字符拆分table字符串(转载)
    实习和学习的双重压力
  • 原文地址:https://www.cnblogs.com/mengfangui/p/7561915.html
Copyright © 2011-2022 走看看