Published on

Using Watch Mode for Faster Development

Authors
  • avatar
    Name
    Hieu Cao
    Twitter

What is Webpack Watch Mode?

Webpack's watch mode is a powerful feature that monitors your project files for changes and automatically rebuilds the project when changes are detected. This helps you save time and avoid manually running Webpack after every modification.


Why Use Watch Mode?

Watch mode improves the development process by:

  • Efficiency: Reducing the need to manually trigger builds.
  • Real-Time Feedback: Providing instant updates to your application when files change.
  • Streamlined Workflow: Keeping your development flow uninterrupted.

Setting Up Webpack Watch Mode

Add the following configuration:

const path = require('path')

module.exports = {
  entry: './src/index.js',
  output: {
    filename: 'bundle.js',
    path: path.resolve(__dirname, 'dist'),
  },
  mode: 'development',
}

Enable Watch Mode

You can enable watch mode in two ways:

Using the CLI

Run the following command:

npx webpack --watch

Webpack will now monitor the files specified in your configuration for changes and rebuild the project automatically.

Using the Configuration File

Add the watch option to your webpack.config.js file:

const path = require('path')

module.exports = {
  entry: './src/index.js',
  output: {
    filename: 'bundle.js',
    path: path.resolve(__dirname, 'dist'),
  },
  mode: 'development',
  watch: true, // Enable watch mode
}

Run Webpack as usual:

npx webpack

Example Workflow

  1. Run Webpack in watch mode:

    npx webpack
    

    or config script in the package.json file

    "scripts": {
      "build": "webpack"
    },
    

    then run command

    npm run build
    
  2. Edit the index.js file, save it, and observe how Webpack automatically rebuilds the project.


Best Practices

  • Combine with DevServer: Use Webpack DevServer for a more seamless development experience, including live reloading.

  • Optimize for Large Projects: Use the watchOptions setting in your configuration to fine-tune how Webpack watches files.

    Example:

    watchOptions: {
      ignored: /node_modules/,
      aggregateTimeout: 300, // Delay rebuild after first change
      poll: 1000, // Check for changes every second
    },
    
  • Use Development Mode: Always set mode to development while working in watch mode to ensure faster builds.


Conclusion

Webpack's watch mode is an essential tool for any developer looking to improve productivity and streamline their workflow. By automatically rebuilding files on change, it minimizes interruptions and helps you focus on what matters most—building great applications. Combine it with other Webpack features like loaders and plugins for an even smoother development experience.