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

推荐订阅源

Attack and Defense Labs
Attack and Defense Labs
The GitHub Blog
The GitHub Blog
C
Check Point Blog
博客园_首页
MongoDB | Blog
MongoDB | Blog
N
Netflix TechBlog - Medium
F
Full Disclosure
Microsoft Security Blog
Microsoft Security Blog
爱范儿
爱范儿
Recent Announcements
Recent Announcements
阮一峰的网络日志
阮一峰的网络日志
G
GRAHAM CLULEY
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
T
Threat Research - Cisco Blogs
C
Cybersecurity and Infrastructure Security Agency CISA
V
Vulnerabilities – Threatpost
K
Kaspersky official blog
博客园 - 司徒正美
S
Schneier on Security
T
The Exploit Database - CXSecurity.com
Project Zero
Project Zero
云风的 BLOG
云风的 BLOG
Cisco Talos Blog
Cisco Talos Blog
Know Your Adversary
Know Your Adversary
雷峰网
雷峰网
V
V2EX - 技术
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Spread Privacy
Spread Privacy
罗磊的独立博客
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
S
Security Affairs
SecWiki News
SecWiki News
Schneier on Security
Schneier on Security
O
OpenAI News
Jina AI
Jina AI
PCI Perspectives
PCI Perspectives
Cyberwarzone
Cyberwarzone
Y
Y Combinator Blog
Apple Machine Learning Research
Apple Machine Learning Research
B
Blog RSS Feed
I
InfoQ
D
Docker
P
Palo Alto Networks Blog
Recorded Future
Recorded Future
M
MIT News - Artificial intelligence
博客园 - Franky
B
Blog
Scott Helme
Scott Helme
博客园 - 叶小钗
D
DataBreaches.Net

博客园 - 滴水冰寒

阿里云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