惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Hugging Face - Blog
Hugging Face - Blog
云风的 BLOG
云风的 BLOG
大猫的无限游戏
大猫的无限游戏
M
MIT News - Artificial intelligence
L
LangChain Blog
阮一峰的网络日志
阮一峰的网络日志
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Recent Announcements
Recent Announcements
IT之家
IT之家
Google DeepMind News
Google DeepMind News
罗磊的独立博客
爱范儿
爱范儿
Last Week in AI
Last Week in AI
人人都是产品经理
人人都是产品经理
U
Unit 42
MongoDB | Blog
MongoDB | Blog
S
SegmentFault 最新的问题
B
Blog
博客园 - 叶小钗
月光博客
月光博客
Stack Overflow Blog
Stack Overflow Blog
V
Visual Studio Blog
C
Check Point Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知

博客园 - 滴水冰寒

阿里云linux--常用命令 electron桌面应用 wepack打包时出错不压缩代码及使用es7(async await)新语法问题 npm install 时发生错误 create-react-app 后使用babel/polyfill webpack3.x--react,jsx多页配置 webpack--打包scss react--2.react-redux react--1.创建项目 百度智能语音引用1 vscode和gitee的使用 vue--1.环境搭建及创建项目 Python内置的服务器的使用 ionic3问题记录 ionic3自定义android原生插件 maven学习--1.项目结构及简单使用 maven学习--1.安装与配置 mybatis学习笔记1.零碎记录 mysql学习--1.事务
webpack--打包和压缩css
滴水冰寒 · 2019-06-26 · via 博客园 - 滴水冰寒

1.webpack3.0+

2.npm install style-loader css-loader file-loader optimize-css-assets-webpack-plugin@3.2.0 --save-dev

包的作用

1.css-loader是允许在js中import一个css文件,会将css文件当成一个模块引入到js文件中。

2.style-loader能够在需要载入的html中创建一个<style></style>标签,标签里的内容就是CSS内容。

3.optimize-css-assets-webpack-plugin 对单独打包的css进行优化(如压缩,去重等),webpack3.0及以下版本,建议使用3.2.0版本

// 引入node的path模块
var path = require('path');
module.exports = {
    entry: {
        app: "./src/app.js"  // 要打包的入口文件
    },
    output: {
        path: path.resolve(__dirname, "dist"), // 使用绝对路径,dist目录
        filename: "[name].bundle.js" // 或./dist/[name].[hash:5].js
    },
    module: {
        rules: [ // 定义css规则
            {
                test: /\.css$/, // 正则匹配要识别的css
                use: [
                    {
                        loader: 'style-loader' // 使用style-loader进行处理,位置必须在css-loader前面
                    },
                    {
                        loader: 'css-loader' // 使用css-loader进行处理
                    }
                ]
               //use:['style-loader','css-loader'] // 此处也可以这样写
            }
        ]
    }
}

3.style-load/url配合file-loader能够将分离单独打包的css文件用<link>标签引入到html文件头部

// 引入node的path模块
var path = require('path');
module.exports = {
    entry: {
        app: "./src/app.js"  // 要打包的入口文件
    },
    output: {
        path: path.resolve(__dirname, "dist"), // 使用绝对路径,dist目录
        publicPath: './dist/',// todo 指定打包后页面加载的文件路径
        filename: "[name].bundle.js" // 或./dist/[name].[hash:5].js
    },
    module: {
        rules: [ // 定义css规则
            {
                test: /\.css$/, // 正则匹配要识别的scc
                use: [
                    {
                        loader: 'style-loader/url' // 使用style-loader进行处理,位置必须在css-loader前面
                    },
                    {
                        loader: 'file-loader' // 使用file-loader进行处理
                    }
                ]
                // use:['style-loader','file-loader']
            }
        ]
    }
}

4.配置压缩等优化

const optimizeCss  = require('optimize-css-assets-webpack-plugin');

...........................................................................

plugins:[
        /*
        new webpack.ProvidePlugin({
            $:'jquery'
        }),
        
        new webpack.optimize.CommonsChunkPlugin({
            names:["bundle","manifest"] //manifest:抽取变动部分,防止第三方控件的多次打包
        }),*/

        new webpack.BannerPlugin('lzy-regx,lvshoutao@126.com,'+new Date().toLocaleDateString()),
 
        new webpack.optimize.UglifyJsPlugin({
            output: {
                //comments: false,  // remove all comments
            },compress:{
                warnings:false,
                drop_console:true
            }
        }),

        new ExtractTextWebpackPlugin({ //在plugins中配置属性
            filename: '[name].min.css' // 配置提取出来的css名称
        }),

        new optimizeCss() //压缩
    ],

原文:https://blog.csdn.net/u010982507/article/details/81277151