webpack -- 代码压缩

一、代码压缩坑

正常情况下,如果我们配置生成环境,webpack会自动帮js压缩,必须配置--mode=production

scripts: {
    "build": "webpack --mode-production"
}

但是如果我们要把css也压缩的话,问题就来了,css压缩

npm install optimize-css-assets-webpack-plugin --save-dev
npm install cssnano --save-dev

调用

const OptimizeCssWebpackPlugin = require('optimize-css-assets-webpack-plugin')
const cssnano = require('cssnano')

plugins: [
    new OptimizeCssWebpackPlugin({
        test: /\.css$/g,
        cssProcessor: cssnano,
        cssProcessorOptions: {discardComments: {removeAll: true;}}, // 这一句似乎是移除所有注释
        canPrint: true
    })
],
optimization: {
    minimizer: [new OptimizeCssWebpackPlugin({})]
}

用了css压缩后,我们发现,js不压缩了,这是需要使用插件uglifyjs-webpack-plugin

npm install uglifyjs-webpack-plugin --save-dev

调用

const UglifyJSWebpackPlugin = require('uglifyjs-webpack-plugin')

plugins: [
    new UglifyJSWebpackPlugin()
]

注意,这样虽然能行,但是看网上,好像这个跟css一样,也要在optimization的minimizer数组里面

原文地址:https://www.cnblogs.com/zjh-study/p/10856129.html

时间: 2024-10-10 11:17:54

webpack -- 代码压缩的相关文章

webpack 打包压缩 ES6文件报错UglifyJs + Unexpected token punc «(», expected punc «:»

webpack打包压缩 ES6 js..vue报错: ERROR in js/test.js from UglifyJs Unexpected token punc ?(?, expected punc ?:? [js/test.js:1374,5] 解决方案: 配置babel,把配置放到文件[.babelrc]中 { "presets": ["es2015"] }

使用gulp进行代码压缩

gulp是一个很不错前端自动化工具,可以帮我们完成一些重复性操作,比如html.css和js代码的压缩.合并.混淆等,虽然这些操作可以通过一些在线工具帮我们实现,但不断重复地复制粘贴肯定比不上一句命令来得方便,所以编写gulp任务可以大大提高程序员的开发效率. 因为gulp依赖于node环境,所以想使用gulp必须先安装好node.另外gulp本身是一个轻量化内核,自身拥有的api不多,所以很多功能需要依赖插件完成.关于html.css和js代码压缩的插件有三个,分别是gulp-htmlmin.

apicloud代码压缩和全局加密

首先说代码压缩,因为没什么用,就先说它了.代码压缩后,apicloud里面的css和js文件里面的空格呀回车呀都去掉了,就是文件小了,所有代码显示为一行了.这些代码的变量没有重命名,我们知道jquery.min.js里面的很多变量是重命名了的,都是变为a呀,b呀什么的.apicloud之所以不重命名,是因为它的html没有压缩,是和原来一样的,所以说,如果js重命名了,但html又没重命名的话,你懂的,名字对应不上,会出大乱子. 代码压缩的作用一般是什对网站的,文件体积变小,节省流量,加载更快,

Webpack 代码分离

Webpack 代码分离 提示: 版本问题 本文基于 webpack 2.x 版本.webpack 2.x 相比 webpack 1.x 有重大改变.所以,如果你的项目中已使用了 webpack 1.x ,本教程的示例将不适用,请慎重. 如果铁了心要升级 webpack ,请参考 webpack 官方文档 - 从 v1 迁移到 v2 阅读建议 阅读本文前,建议先阅读 Webpack 概念 . 代码分离是 webpack 中最引人注目的特性之一. 你可以把你的代码分离到不同的 bundle 中,然

Angular.js 学习二---$scope和$rootScope,Angular模块的run方法,依赖注入中代码压缩

一.$scope和$rootScope的区别 一句话总结: $rootScope针对全局的作用域生效 $scope只针对当前的controller作用域生效 二.AngularJS模块的run方法 run方法初始化全局的数据,只对全局作用域起作用 如$rootScope <script type="text/javascript"> var m1 = angular.module('myApp', []); m1.run(['$rootScope', function ($

Asp.Net MVC 页面代码压缩筛选器-自定义删除无效内容

Asp.Net MVC 页面代码压缩筛选器 首先定义以下筛选器,用于代码压缩. /*页面压缩 筛选器*/ public class WhiteSpaceFilter : Stream { private Stream _shrink; private Func<string, string> _filter; public WhiteSpaceFilter(Stream shrink, Func<string, string> filter) { _shrink = shrink;

Angularjs MVC 以及 $scope 作用域 Angularjs 模块 的 run 方法 以及依赖注入中代码压缩问题

Angularjs MVC 以及 $scope 作用域 Angularjs 模块的 run 方法 以及依赖注入中代码压缩问题 1. Angularjs MVCModel:数据模型层View:视图层,负责展示Controller:业务逻辑和控制逻辑优点: 代码模块化 代码逻辑比较清晰.可移值性高,后期维护方便.代码复用,代码规模越来越大的时候,切分职责是大势所趋缺点:运行效率稍微低一些2. Angularjs $scope 作用域1. $scope 多控制器单独作用域<!DOCTYPE html>

UglifyJS--javascript代码压缩使用指南{转}

在线测试地址 http://lisperator.net/uglifyjs/下面都是基于linux系统的安装使用.UglifyJS是遵循了CommonJS规范写成的,可以在支持CommonJS模块系统的javascript环境中运行.当然,这是官方的说法,通俗的说,就是可以在浏览器里和node.js的环境中兼可运行了. UglifyJS的作者在今年9月份的时候,开始了UglifyJS2的项目,作者本人也是比较推崇UglifyJS2,因此,本文就只是关于UglifyJS2的一些介绍.下文中所有的U

angularjs1-2,作用域、代码压缩

<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>无标题文档</title> <script type="text/javascript" src="angular.min.js">