视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
webpack打包压缩js与css步骤详解
2020-11-27 19:50:24 责编:小采
文档

这次给大家带来webpack打包压缩js与css步骤详解,webpack打包压缩js与css的注意事项有哪些,下面就是实战案例,一起来看一下。

打包压缩js与css

由于webpack本身集成了UglifyJS插件(webpack.optimize.UglifyJsPlugin)来完成对JS与CSS的压缩混淆,无需引用额外的插件,

其命令 webpack -p 即表示调用UglifyJS来压缩代码,还有不少webpack插件如 html-webpack-plugin 也会默认使用UglifyJS。

uglify-js的发行版本只支持ES5,如果你要压缩ES6+代码请使用开发分支。

UglifyJS可用的选项有:

parse 解释

compress 压缩

mangle 混淆

beautify 美化

minify 最小化//在插件HtmlWebpackPlugin中使用

CLI 命令行工具

sourcemap 编译后代码对源码的映射,用于网页调试

AST 抽象语法树

name 名字,包括变量名、函数名、属性名

toplevel 顶层作用域

unreachable 不可达代码

option 选项

STDIN 标准输入,指在命令行中直接输入

STDOUT 标准输出

STDERR 标准错误输出

side effects函数副作用,即函数除了返回外还产生别的作用,比如改了全局变量

列一份配置:

//使用插件html-webpack-plugin打包合并html
//使用插件extract-text-webpack-plugin打包的css
//使用UglifyJsPlugin压缩代码
var HtmlWebpackPlugin = require('html-webpack-plugin');
var ExtractTextPlugin = require('extract-text-webpack-plugin');
var webpack = require("webpack");
module.exports = {
 entry: {
 bundle : './src/js/main.js'
 },
 output: {
 filename: "[name]-[hash].js",
 path: dirname + '/dist'
 },
 module: {
 rules: [
 {
 test: /\.css$/,
 use: ExtractTextPlugin.extract({
 fallback: "style-loader",
 use: "css-loader"
 })
 },
 {
 test: /\.(png|jpg|jpeg|gif)$/,
 use: 'url-loader?limit=8192'
 }
 ]
 },
 resolve:{
 extensions:['.js','.css','.json'] //用于配置程序可以自行补全哪些文件后缀
 },
 plugins:[
 new HtmlWebpackPlugin({
 title: 'hello webpack',
 template:'src/component/index.html',
 inject:'body',
 minify:{ //压缩HTML文件
 removeComments:true, //移除HTML中的注释
 collapseWhitespace:true //删除空白符与换行符
 }
 }),
 new ExtractTextPlugin("[name].[hash].css"),
 new webpack.optimize.UglifyJsPlugin({
 compress: { //压缩代码
 dead_code: true, //移除没被引用的代码
 warnings: false, //当删除没有用处的代码时,显示警告
 loops: true //当do、while 、 for循环的判断条件可以确定是,对其进行优化
 },
 except: ['$super', '$', 'exports', 'require'] //混淆,并排除关键字
 })
 ]
};

这里需要注意的是压缩的时候需要排除一些关键字,不能混淆,比如$或者require,如果混淆的话就会影响到代码的正常运行。

列几个压缩时常有的属性:

  1. dead_code -- 移除没被引用的代码

  2. loops -- 当 do 、 while 、 for 循环的判断条件可以确定是,对其进行优化。

  3. warnings -- 当删除没有用处的代码时,显示警告

相信看了本文案例你已经掌握了方法,更多精彩请关注Gxl网其它相关文章!

推荐阅读:

nodejs对密码加密处理方法总结

vue数据传递方法总结

如何确认ng-repeat渲染完成

下载本文
显示全文
专题