angular-ui-mention
Version:
Facebook-like @mentions for text inputs built around composability
85 lines (74 loc) • 2.18 kB
JavaScript
var gulp = require('gulp'),
plugins = require('gulp-load-plugins')(),
Karma = require('karma').Server
ngAnnotate = require('gulp-ng-annotate');
var paths = {
scripts: {
src: ['src/**/*.js'],
dest: 'dist',
file: 'mention.js'
},
styles: {
src: ['src/**/*.scss'],
dest: 'dist',
file: 'mention.css'
},
example: {
scripts: {
src: ['example/**/*.es6.js'],
dest: 'example',
file: 'example.js'
},
styles: {
src: ['example/**/*.scss'],
dest: 'example'
}
}
};
gulp.task('scripts', scripts(paths.scripts));
gulp.task('scripts:example', scripts(paths.example.scripts));
gulp.task('styles', styles(paths.styles));
gulp.task('styles:example', styles(paths.example.styles));
gulp.task('default', gulp.series('scripts'));
gulp.task('example', gulp.series('scripts:example', 'styles:example'));
gulp.task('watch', function(){
gulp.watch(paths.scripts.src, gulp.series('scripts'));
gulp.watch(paths.styles.src, gulp.series('styles'));
});
gulp.task('watch:example', function(){
gulp.watch(paths.example.scripts.src, gulp.series('scripts:example'));
gulp.watch(paths.example.styles.src, gulp.series('styles:example'));
});
gulp.task('karma', karma());
gulp.task('watch:karma', karma({ singleRun: false, autoWatch: true }));
function karma (opts) {
opts = opts || {};
opts.configFile = __dirname + '/karma.conf.js';
return function (done) {
return new Karma(opts, done).start();
}
}
function scripts(path, concat) {
return function() {
return gulp.src(path.src)
.pipe(plugins.sourcemaps.init())
.pipe(plugins.babel())
.pipe(plugins.angularFilesort())
.pipe(plugins.concat(path.file))
.pipe(ngAnnotate())
.pipe(gulp.dest(path.dest))
.pipe(plugins.uglify({ mangle: false }))
.pipe(plugins.extReplace('.min.js'))
.pipe(gulp.dest(path.dest))
.pipe(plugins.sourcemaps.write('.'));
}
}
function styles(path) {
return function() {
return gulp.src(path.src)
.pipe(plugins.sourcemaps.init())
.pipe(plugins.sass())
.pipe(gulp.dest(path.dest))
.pipe(plugins.sourcemaps.write('.'));
}
}