@nurun-sf/spark-component
Version:
A tool for building spark components
55 lines (43 loc) • 1.37 kB
JavaScript
;
const browserify = require('browserify');
const browserifyBabelIstanbul = require('browserify-babel-istanbul');
const globalShim = require('browserify-global-shim');
const babelify = require('babelify');
const watchify = require('watchify');
const isparta = require('isparta');
const source = require('vinyl-source-stream');
const excludeExternalDeps = require('../lib/exclude-external-deps');
const config = require('../lib/config');
const DEPENDENCIES = Object.keys(config.dependencies);
const GLOBAL_SHIM_MAP = DEPENDENCIES.reduce(function (obj, name) {
obj[name] = config.dependencies[name].root;
return obj;
}, {});
const GLOBAL_SHIM = globalShim.configure(GLOBAL_SHIM_MAP);
module.exports = function (gulp) {
var stream;
function bundle() {
return stream
.bundle()
.pipe(source(config.filename.instrumented))
.pipe(gulp.dest(config.dist));
}
stream = browserify({
cache: {},
packageCache: {},
entries: ['./' + config.filename.source],
standalone: config.className,
});
if (config.watch) {
stream = watchify(stream);
}
excludeExternalDeps(stream, DEPENDENCIES)
.transform(babelify, config.babel)
.transform(browserifyBabelIstanbul({
instrumentor: isparta,
includeUntested: true,
}))
.transform(GLOBAL_SHIM)
.on('update', bundle);
return bundle;
};