@edools/epm
Version:
Edools apps management tool
55 lines (47 loc) • 1.51 kB
JavaScript
var gulp = require('gulp'),
$ = require('gulp-load-plugins')(),
esperanto = require('esperanto'),
path = require('path');
function linkTask(path) {
return function () {
return gulp.src(path)
.pipe($.eslint())
.pipe($.eslint.format())
.pipe($.eslint.failOnError());
}
}
gulp.task('lint:src', linkTask('src/**/*.js'));
gulp.task('lint:test', linkTask('test/**/*.js'));
gulp.task('build', ['lint:src'], function (done) {
esperanto.bundle({
base: 'src',
entry: 'index'
}).then(function (bundle) {
var res = bundle.toUmd({
sourceMap: true,
sourceMapSource: 'index.js',
sourceMapFile: 'index.js',
name: 'index.js',
strict: true
});
var exportFileName = path.basename('src/index.js', path.extname('src/index.js')) + '.js';
$.file(exportFileName, res.code, { src: true })
.pipe($.plumber())
.pipe($.sourcemaps.init({ loadMaps: true }))
.pipe($.babel({
blacklist: ['useStrict'],
optional: ['runtime']
}))
.pipe($.sourcemaps.write('./', { addComment: false }))
.pipe(gulp.dest('dist/'))
.on('end', done);
})
.catch(done);
});
gulp.task('serve', ['build'], function () {
gulp.watch('src/**/*.js', ['build']);
});
gulp.task('test', ['lint:src', 'lint:test'], function () {
return gulp.src(['test/setup/node.js', 'test/unit/**/*.js'], { read: false })
.pipe($.mocha({reporter: 'nyan', globals: ['stub', 'spy', 'expect']}));
});