Table of Contents
(1) UglifyJS
(2) webpack-parallel-uglify-plugin
(3) terser-webpack-plugin
Home Web Front-end JS Tutorial Detailed explanation of 3 JS compression plug-ins commonly used in webpack

Detailed explanation of 3 JS compression plug-ins commonly used in webpack

Apr 13, 2021 pm 07:00 PM
webpack

This article will give you a detailed introduction to three commonly used JS compression plug-ins in webpack. It has certain reference value. Friends in need can refer to it. I hope it will be helpful to everyone.

Detailed explanation of 3 JS compression plug-ins commonly used in webpack

Here are three types of JS packaging plug-ins:

(1) UglifyJS

Support: babel present2015, webpack3

Disadvantages:

It uses a single-threaded compression code, that is Say multiple js files need to be compressed, it needs to be compressed one by one. Therefore, packaging and compressing code in a formal environment is very slow (because compressing JS code requires first parsing the code into an AST syntax tree represented by Object abstraction, and then applying various rules to analyze and process the AST, making this process very time-consuming) .

Advantages: Old project support (compatible with IOS10)

Usage:

npm i uglifyjs-webpack- plugin

module.exports = {
  plugins: [
    new webpack.optimize.UglifyJsPlugin({
      sourceMap: true,
      compress: {
        warnings: false
      }
    }),
  ]
}
Copy after login

[Recommended learning: javascript advanced tutorial

(2) webpack-parallel-uglify-plugin

Support: babel7, webpack4

##Disadvantages: Not supported by old projects (not compatible with IOS10)

Advantages:

The ParallelUglifyPlugin plug-in will open multiple sub-processes and assign the compression work of multiple files to multiple sub-processes to complete, but each sub-process will still pass UglifyJS decompresses code. It's nothing more than parallel processing that needs to be compressed. Processing multiple subtasks in parallel will increase efficiency even more.

Usage:

1、

npm i -D webpack-parallel-uglify-plugin

2、

webpack.config.jsFile

// 引入 ParallelUglifyPlugin 插件
const ParallelUglifyPlugin = require('webpack-parallel-uglify-plugin');

module.exports = {
plugins: [
// 使用 ParallelUglifyPlugin 并行压缩输出JS代码
new ParallelUglifyPlugin({
// 传递给 UglifyJS的参数如下:
uglifyJS: {
output: {
/*
 是否输出可读性较强的代码,即会保留空格和制表符,默认为输出,为了达到更好的压缩效果,
 可以设置为false
*/
beautify: false,
/*
 是否保留代码中的注释,默认为保留,为了达到更好的压缩效果,可以设置为false
*/
comments: false
},
compress: {
/*
 是否在UglifyJS删除没有用到的代码时输出警告信息,默认为输出,可以设置为false关闭这些作用
 不大的警告
*/
warnings: false,

/*
 是否删除代码中所有的console语句,默认为不删除,开启后,会删除所有的console语句
*/
drop_console: true,

/*
 是否内嵌虽然已经定义了,但是只用到一次的变量,比如将 var x = 1; y = x, 转换成 y = 5, 默认为不
 转换,为了达到更好的压缩效果,可以设置为false
*/
collapse_vars: true,

/*
 是否提取出现了多次但是没有定义成变量去引用的静态值,比如将 x = 'xxx'; y = 'xxx'  转换成
 var a = 'xxxx'; x = a; y = a; 默认为不转换,为了达到更好的压缩效果,可以设置为false
*/
reduce_vars: true
}
}
}),
]
}
Copy after login

3. Description

  • test: Use regular rules to match which files need to be compressed by ParallelUglifyPlugin. The default is /.js$ /.

  • include: Use regular expressions to include files compressed by ParallelUglifyPlugin, the default is [].

  • exclude: Use regular expressions to exclude files Files compressed by ParallelUglifyPlugin, the default is [].

  • cacheDir: caches the compressed results. The next time the same input is encountered, the compressed results are directly obtained from the cache and returned. , cacheDir

  • # is used to configure the directory path where the cache is stored. It will not be cached by default. If you want to enable caching, please set a directory path.

  • workerCount: Start several child processes to perform compression concurrently. The default is the number of CPU cores of the currently running computer minus 1.

  • sourceMap: Whether to generate the corresponding Source Map for the compressed code. It is not generated by default. When turned on, the time consumption will be greatly increased. Generally, the compressed code will not be

  • sourceMap sent to the website user's browser.

  • uglifyJS: used for configuration when compressing ES5 code, Object type, directly transparently passed to UglifyJS parameters.

  • uglifyES: used for configuration when compressing ES6 code, Object type, directly transparently passed to the parameters of UglifyES.

4. ParallelUglifyPlugin actual column will have the following parameter configuration items:

new ParallelUglifyPlugin({
  uglifyJS: {},
  test: /.js$/g,
  include: [],
  exclude: [],
  cacheDir: '',
  workerCount: '',
  sourceMap: false
});
Copy after login

5. github address (https://github.com/gdborton/webpack-parallel- uglify-plugin)

Detailed explanation of 3 JS compression plug-ins commonly used in webpack

(3) terser-webpack-plugin

Support: babel7, webpack4

##Disadvantages:

Not supported by old projects (not compatible with IOS10)

Advantages:

    Like ParallelUglifyPlugin, multiple subtasks are processed in parallel, and the efficiency will be further improved.
  • webpack4 is officially recommended and maintained by someone.
Use:

npm install terser-webpack-plugin --save-dev
Copy after login
optimization: {
  minimize: true,
  minimizer: [
    new TerserPlugin({
      terserOptions: {
        ecma: 5,
        warnings: false,
        parse: {},
        compress: {},
        mangle: true, // Note `mangle.properties` is `false` by default.
        module: false,
        output: null,
        toplevel: false,
        nameCache: null,
        ie8: false,
        keep_fnames: false,
        safari10: true
      }
    })
  ]
}
Copy after login
github address: https://github.com/webpack-contrib/terser-webpack-plugin

Detailed explanation of 3 JS compression plug-ins commonly used in webpackFor more programming-related knowledge, please visit:

Programming Video

! !

The above is the detailed content of Detailed explanation of 3 JS compression plug-ins commonly used in webpack. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

VUE3 Getting Started Tutorial: Packaging and Building with Webpack VUE3 Getting Started Tutorial: Packaging and Building with Webpack Jun 15, 2023 pm 06:17 PM

Vue is an excellent JavaScript framework that can help us quickly build interactive and efficient web applications. Vue3 is the latest version of Vue, which introduces many new features and functionality. Webpack is currently one of the most popular JavaScript module packagers and build tools, which can help us manage various resources in our projects. This article will introduce how to use Webpack to package and build Vue3 applications. 1. Install Webpack

What is the difference between vite and webpack What is the difference between vite and webpack Jan 11, 2023 pm 02:55 PM

Differences: 1. The startup speed of the webpack server is slower than that of Vite; because Vite does not require packaging when starting, there is no need to analyze module dependencies and compile, so the startup speed is very fast. 2. Vite hot update is faster than webpack; in terms of HRM of Vite, when the content of a certain module changes, just let the browser re-request the module. 3. Vite uses esbuild to pre-build dependencies, while webpack is based on node. 4. The ecology of Vite is not as good as webpack, and the loaders and plug-ins are not rich enough.

How to use PHP and webpack for modular development How to use PHP and webpack for modular development May 11, 2023 pm 03:52 PM

With the continuous development of web development technology, front-end and back-end separation and modular development have become a widespread trend. PHP is a commonly used back-end language. When doing modular development, we need to use some tools to manage and package modules. Webpack is a very easy-to-use modular packaging tool. This article will introduce how to use PHP and webpack for modular development. 1. What is modular development? Modular development refers to decomposing a program into different independent modules. Each module has its own function.

How does webpack convert es6 to es5 module? How does webpack convert es6 to es5 module? Oct 18, 2022 pm 03:48 PM

Configuration method: 1. Use the import method to put the ES6 code into the packaged js code file; 2. Use the npm tool to install the babel-loader tool, the syntax is "npm install -D babel-loader @babel/core @babel/preset- env"; 3. Create the configuration file ".babelrc" of the babel tool and set the transcoding rules; 4. Configure the packaging rules in the webpack.config.js file.

Use Spring Boot and Webpack to build front-end projects and plug-in systems Use Spring Boot and Webpack to build front-end projects and plug-in systems Jun 22, 2023 am 09:13 AM

As the complexity of modern web applications continues to increase, building excellent front-end engineering and plug-in systems has become increasingly important. With the popularity of Spring Boot and Webpack, they have become a perfect combination for building front-end projects and plug-in systems. SpringBoot is a Java framework that creates Java applications with minimal configuration requirements. It provides many useful features, such as automatic configuration, so that developers can build and deploy web applications faster and easier. W

What files can vue webpack package? What files can vue webpack package? Dec 20, 2022 pm 07:44 PM

In vue, webpack can package js, css, pictures, json and other files into appropriate formats for browser use; in webpack, js, css, pictures, json and other file types can be used as modules. Various module resources in webpack can be packaged and merged into one or more packages, and during the packaging process, the resources can be processed, such as compressing images, converting scss to css, converting ES6 syntax to ES5, etc., which can be recognized by HTML. file type.

What is Webpack? Detailed explanation of how it works? What is Webpack? Detailed explanation of how it works? Oct 13, 2022 pm 07:36 PM

Webpack is a module packaging tool. It creates modules for different dependencies and packages them all into manageable output files. This is especially useful for single-page applications (the de facto standard for web applications today).

An in-depth analysis of the packaging process and principles of webpack An in-depth analysis of the packaging process and principles of webpack Aug 09, 2022 pm 05:11 PM

How does Webpack implement packaging? The following article will give you an in-depth understanding of Webpack packaging principles. I hope it will be helpful to you!

See all articles