npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

gulp-jspm-builder

v1.1.1

Published

Gulp task to run jspm 0.17 build and install

Downloads

9

Readme

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'));
});