Webpack Build Wrapper

1.0.1 · active · verified Tue Apr 21

The `webpack-build` package, currently at version 1.0.1, serves as a comprehensive wrapper around Webpack, streamlining its integration into broader build systems. It distinguishes itself by offering a suite of advanced features not native to base Webpack, including the ability to run multiple concurrent Webpack compilers leveraging multiple worker processes, robust persistent caching mechanisms for significantly faster rebuilds, and a built-in build server with HMR (Hot Module Replacement) support. This tool is designed to reduce boilerplate and standardize complex build configurations by providing specific configuration hooks and a dynamic way to construct Webpack configs based on various build flags and options. It allows for overriding standard Webpack `output.path` and `publicPath`, and manages asset paths with `staticRoot` and `staticUrl` options. While its release cadence isn't explicitly stated, its 1.x version implies a stable and mature codebase focused on enhancing the Webpack development experience through structured extensibility and performance optimizations.

Common errors

Warnings

Install

Imports

Quickstart

This example demonstrates basic usage, initializing a build with a dynamic Webpack configuration file and logging the generated assets. It also sets up a simple dummy config and source file for a runnable example.

const build = require('webpack-build');
const path = require('path');
const fs = require('fs');

// Create a dummy webpack.config.js for demonstration
const configPath = path.join(__dirname, 'webpack.config.js');
const dummyConfigContent = `
module.exports = function(opts) {
  return {
    entry: './src/index.js',
    output: {
      path: opts.outputPath || path.join(__dirname, 'dist'),
      filename: 'bundle.js'
    },
    mode: 'development' // Webpack 4+ needs mode
  };
};
`;

// Create a dummy entry file
const srcDir = path.join(__dirname, 'src');
if (!fs.existsSync(srcDir)) fs.mkdirSync(srcDir);
fs.writeFileSync(path.join(srcDir, 'index.js'), 'console.log("Hello from webpack-build!");');

fs.writeFileSync(configPath, dummyConfigContent);

console.log('Starting webpack-build...');
build({
  config: configPath,
  watch: false, // Set to true to enable watching
  outputPath: path.join(__dirname, 'output'),
  context: {
    debug: true
  }
}, function(err, data) {
  if (err) {
    console.error('Build failed:', err);
    return;
  }
  console.log('Build successful!');
  console.log('Generated assets:', data.assets);
  // Clean up dummy files
  fs.unlinkSync(path.join(srcDir, 'index.js'));
  fs.rmdirSync(srcDir);
  fs.unlinkSync(configPath);
  fs.rmdirSync(path.join(__dirname, 'output'), { recursive: true });
});

view raw JSON →