How to use the ProgressPlugin function from webpack

Find comprehensive JavaScript webpack.ProgressPlugin code examples handpicked from public code repositorys.

webpack.ProgressPlugin is a plugin for the Webpack module bundler that displays progress updates in the console during the build process.

17
18
19
20
21
22
23
24
25
26
devServer: {
  static: distDir,
  port: 9000
},
plugins: [
  new webpack.ProgressPlugin(),
  new WebpackModules(),
  new CleanWebpackPlugin({ protectWebpackAssets: false }),
  new CopyPlugin([{ from: 'public', to: '.' }]),
  new CompressionPlugin()
fork icon1
star icon6
watch icon0

899
900
901
902
903
904
905
906
907
908
new webpack.ProvidePlugin({
  process: 'process/browser.js',
  Buffer: ['buffer', 'Buffer'],
}),
enableProgressPlugin &&
  new webpack.ProgressPlugin({
    activeModules: false,
    entries: true,
    handler(percentage, message, ...args) {
      console.info(percentage, message, ...args);
fork icon2
star icon5
watch icon5

How does webpack.ProgressPlugin work?

webpack.ProgressPlugin is a plugin for the Webpack module bundler that displays progress updates in the console during the build process.

When webpack.ProgressPlugin is added to a Webpack configuration, it hooks into the Webpack build process and displays progress updates in the console as each module is processed and bundled.

The progress updates include information like the current percentage of completion, the name of the current module being processed, and the estimated time remaining until the build is complete.

Here is an example of using webpack.ProgressPlugin in a Webpack configuration:

javascript
const webpack = require("webpack"); module.exports = { // ... other Webpack configuration options ... plugins: [ new webpack.ProgressPlugin(), ], };

In this example, we add webpack.ProgressPlugin to the list of plugins in our Webpack configuration. When we run the Webpack build process, progress updates will be displayed in the console as each module is processed.

Note that webpack.ProgressPlugin is not strictly necessary for building a Webpack bundle, but can be helpful for providing feedback on the progress of the build process, particularly for large projects with many modules.

61
62
63
64
65
66
67
68
69
      crossorigin() {
        return 'anonymous';
      }
    }),


    new webpack.ProgressPlugin()
  ]
});
fork icon0
star icon0
watch icon1

258
259
260
261
262
263
264
265
266
267
      to: destPath,
      toType: 'dir'
    }
  ]
}),
new webpack.ProgressPlugin(), // it shows progress of building
new webpack.ProvidePlugin({
  React: 'react' // optional: react. it adds [import React from 'react'] as ES6 module to every file into the project
}),
new ObsoleteWebpackPlugin({
fork icon0
star icon0
watch icon0

+ 3 other calls in file

Ai Example

1
2
3
4
5
6
7
8
9
10
const webpack = require("webpack");

module.exports = {
  entry: "./src/index.js",
  output: {
    filename: "bundle.js",
    path: __dirname + "/dist",
  },
  plugins: [new webpack.ProgressPlugin()],
};

In this example, we add webpack.ProgressPlugin to the list of plugins in our Webpack configuration. When we run the Webpack build process, progress updates will be displayed in the console as each module is processed and bundled. Note that the exact format of the progress updates displayed in the console may depend on your terminal and console settings. The updates may include information like the current percentage of completion, the name of the current module being processed, and the estimated time remaining until the build is complete.

24
25
26
27
28
29
30
31
32
33
34
 */


module.exports = {
  mode: 'development',
  entry: './src/index.ts',
  plugins: [new webpack.ProgressPlugin()],
  devtool: 'inline-source-map',
  output: {
    path: __dirname + '/docs',
    filename: 'main.js',
fork icon0
star icon0
watch icon0

145
146
147
148
149
150
151
152
153
154

//🚀 Nếu build thì sẽ thêm một số config
if (isProduction) {
  config.plugins = [
    ...config.plugins,
    new webpack.ProgressPlugin(), // Hiển thị % khi build
    // Nén brotli css và js nhưng không hiểu sao chỉ có js được nén 🥲
    new CompressionPlugin({
      test: /\.(css|js)$/,
      algorithm: 'brotliCompress'
fork icon0
star icon0
watch icon0

348
349
350
351
352
353
354
355
356
357
  //     },
  //   }),
  // )
} else {
  // config.plugins.push(
  //   new ProgressPlugin((percentage, message, ...args) => {
  //     console.info(chalk.green((percentage * 100).toFixed(0) + '%'), message, ...args)
  //     if (percentage === 1) {
  //     }
  //   }),
fork icon0
star icon0
watch icon0

+ 3 other calls in file

105
106
107
108
109
110
111
112
113
114
const invalidPlugin = () => {
  this.sockWrite(this.sockets, 'invalid');
};

if (this.progress) {
  const progressPlugin = new webpack.ProgressPlugin(
    (percent, msg, addInfo) => {
      percent = Math.floor(percent * 100);

      if (percent === 100) {
fork icon0
star icon0
watch icon0

89
90
91
92
93
94
95
96
97
98
    },
    plugins: []
};

if (!process.env.CI) {
    base.plugins.push(new webpack.ProgressPlugin());
}

module.exports = [
    // to run editor examples
fork icon0
star icon0
watch icon207