UNPKG

@edools/epm

Version:

Edools apps management tool

55 lines (47 loc) 1.51 kB
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']})); });