JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 3309
  • Score
    100M100P100Q13213F
  • License MIT

webpack

Package Exports

  • gulp-webpack

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (gulp-webpack) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

gulp-webpack Build Status

webpack plugin for gulp

NPM

Usage

var gulp = require('gulp');
var webpack = require('gulp-webpack');
gulp.task('default', function() {
  return gulp.src('src/entry.js')
    .pipe(webpack())
    .pipe(gulp.dest('dist/'));
});

The above will compile src/entry.js into assets with webpack into dist/ with the output filename of [hash].js (webpack generated hash of the build).

You can pass webpack options in with the first argument:

return gulp.src('src/entry.js')
  .pipe(webpack({
    module: {
      loaders: [
        { test: /\.css$/, loader: 'style!css' },
      ],
    },
  }))
  .pipe(gulp.dest('dist/'));

Or just pass in your webpack.config.js:

return gulp.src('src/entry.js')
  .pipe(webpack( require('./webpack.config.js') ))
  .pipe(gulp.dest('dist/'));

If you would like to use a different version of webpack than the one this plugin uses, pass in an optional 2nd argument:

var gulp = require('gulp');
var webpack = require('webpack');
var gulpWebpack = require('gulp-webpack');
gulp.task('default', function() {
  return gulp.src('src/entry.js')
    .pipe(gulpWebpack({}, webpack))
    .pipe(gulp.dest('dist/'));
});

Pass in 3rd argument if you want to access the stats outputted from webpack when the compilation is done:

var gulp = require('gulp');
var webpack = require('gulp-webpack');
gulp.task('default', function() {
  return gulp.src('src/entry.js')
    .pipe(webpack({
      /* config */
    }, null, function(err, stats) {
      /* Use stats to do more things if needed */
    }))
    .pipe(gulp.dest('dist/'));
});

Multiple Entry Points

A common request is how to handle multiple entry points. You can continue to pass in an entry option in your typical webpack config like so:

var gulp = require('gulp');
var webpack = require('gulp-webpack');
gulp.task('default', function() {
  return gulp.src('src/entry.js')
    .pipe(webpack({
      entry: {
        app: 'src/app.js',
        test: 'test/test.js',
      },
      output: {
        filename: '[name].js',
      },
    }))
    .pipe(gulp.dest('dist/'));
});

Or pipe files through a stream that names the chunks. A convenient library for this is vinyl-named:

var gulp = require('gulp');
var webpack = require('gulp-webpack');
var named = require('vinyl-named');
gulp.task('default', function() {
  return gulp.src('src/entry.js')
    .pipe(named())
    .pipe(webpack())
    .pipe(gulp.dest('dist/'));
});

The above named() stream will add a .named property to the vinyl files passing through. The webpack() stream will read those as entry points and even group entry points with common names together.

Release History

  • 1.0.0 - Support named chunks pipe'd in for multiple entry points.
  • 0.4.1 - Fixed regression for multiple entry point support.
  • 0.4.0 - Display an error message if there are no input files (@3onyc). Add message on why task is not finishing, Add ability to track compilation progress, Add ability to configure stats output via options (@kompot). Bump webpack version (@koistya).
  • 0.3.0 - Update deps (@kompot). Fixes to determining entry (@btipling and @abergs).
  • 0.2.0 - Support for watch mode (@ampedandwired).
  • 0.1.0 - Initial release

License

Copyright (c) 2014 Kyle Robinson Young
Licensed under the MIT license.