Nurturing Pluto's Martians

    gulp-jspm-builder

    1.1.1 • Public • Published

    gulp-jspm-builder Build Status

    Gulp task to run jspm build and produce output as a Vinyl stream.

    Based on gulp-jspm-build, but written to support jspm 0.17, with better logging, error handling, and sourcemap support, as well as the ability to run jspm install as part of the gulp task.

    Install

    npm install --save-dev gulp-jspm-builder
    

    Usage

    var jspmBuilder = require('gulp-jspm-builder');
     
    gulp.task('jspm', function(){
        jspmBuilder({
            bundles: [
                { src: 'app', dst: 'app.js' }
            ]
        })
        .pipe(gulp.dest('.dist'));
    });
     

    API: jspmBuilder([options])

    install

    Type: boolean or string
    Default: false

    • false: do not run jspm install
    • true / 'auto': only run jspm install if package.json or config files have changed since an install was last run.
    • 'force': always run jspm install

    installOptions

    Type: object

    Options passed to jspm.install(). Pass {summary: true} to generate log output for the install.

    bundles

    Type: Array

    An array of bundles to create. Each object is a jspm bundle created with jspm.Builder, according to the following format.

    src

    Type: string

    Modules to bundle. You can use jspm arithmetic expressions here.

    'app'
    'core + navigation + app'
    'app - react'

    dst

    Type: string

    Output filename for the bundle. The eventually created file will be at this path, relative to the directory passed into gulp.dest().

    sfx

    Type: string
    Default: false

    Create a single file executable, including all necessary dependencies and systemjs.

    See the jspm documentation for more information.

    options

    Type: object

    The options argument passed to jspm.Builder.buildStatic or jspm.Builder.bundle (depending on whether sfx is true or false, respectively).

    {
      minify: true,
      mangle: true,
      sourceMaps: true,
      format: 'global',
      globalName: 'myGlobal'
    }

    Note! For sourcemaps files to be created, it is also necessary to pipe the stream returned from jspmBuilder() to gulp-sourcemaps's write() function:

    const sourcemaps = require('gulp-sourcemaps');
     
    // Because of a long-standing bug in gulp-sourcemaps, it is necessary to either
    // include the destination directory in bundles.dst (and call gulp.dest() with
    // '.') or to pass the sourceRoot option to sourcemaps.write() in order for
    // the relative paths of sources to be correct.
    jspmBuilder({bundles: [{src: 'pkg', dst: 'dist/pkg.js', sourceMaps: true}]})
      .pipe(sourcemaps.write('.'))
      .pipe(gulp.dest('.'));

    bundleOptions

    Same as bundle.options, but applies to all bundles.

    packagePath

    Type: string

    Optional, the path where the package.json containing the jspm config lives. For the common case this should be omitted.

    baseURL

    The jspm base URL, as normally specified in your package.json under config.jspm.directories.baseURL. Defaults to '.'.

    config

    Optional, an object passed to SystemJS.config() to override SystemJS settings.

    Example

    var jspmBuilder = require('gulp-jspm-builder');
     
    gulp.task('jspm', function(){
        jspmBuilder({        
            bundleOptions: {
                minify: true,
                mangle: true
            },
            bundles: [
                { src: 'app', dst: 'app.js', sfx: true }
                {
                    src: 'react + react-router',
                    dst: 'lib.js',
                    options: { mangle: false }
                }
            ],
            install: true,
            installOptions: {
                summary: true
            }
        })
        .pipe(gulp.dest('.dist'));
    });

    Keywords

    Install

    npm i gulp-jspm-builder

    DownloadsWeekly Downloads

    3

    Version

    1.1.1

    License

    MIT

    Last publish

    Collaborators

    • fdintino