gulp-jspm-builder
v1.1.1
Published
Gulp task to run jspm 0.17 build and install
Downloads
9
Readme
gulp-jspm-builder
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 runjspm install
true
/'auto'
: only runjspm install
if package.json or config files have changed since an install was last run.'force'
: always runjspm 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'));
});