mirror of https://github.com/nextcloud/contacts
86 lines
1.9 KiB
JavaScript
86 lines
1.9 KiB
JavaScript
var gulp = require('gulp'),
|
|
concat = require('gulp-concat'),
|
|
eslint = require('gulp-eslint'),
|
|
stylelint = require('gulp-stylelint');
|
|
ngAnnotate = require('gulp-ng-annotate'),
|
|
merge = require('merge-stream'),
|
|
KarmaServer = require('karma').Server,
|
|
sourcemaps = require('gulp-sourcemaps');
|
|
|
|
var dependencies = require('./vendorScripts.json');
|
|
|
|
gulp.task('build', function() {
|
|
return gulp.src([
|
|
'js/main.js',
|
|
'js/components/**/*.js',
|
|
'js/models/**/*.js',
|
|
'js/services/**/*.js',
|
|
'js/filters/**/*.js'
|
|
])
|
|
// concat (+sourcemaps)
|
|
.pipe(sourcemaps.init())
|
|
.pipe(ngAnnotate({ single_quotes: true }))
|
|
.pipe(concat('script.js'))
|
|
.pipe(sourcemaps.write())
|
|
|
|
.pipe(gulp.dest('js/public'));
|
|
});
|
|
|
|
gulp.task('vendor', function() {
|
|
let stream = require('merge-stream')();;
|
|
|
|
for(let dependency in dependencies.scripts) {
|
|
stream.add(
|
|
gulp.src(dependencies.scripts[dependency])
|
|
.pipe(gulp.dest(`js/vendor/${dependency}`))
|
|
);
|
|
}
|
|
|
|
for(let dependency in dependencies.styles) {
|
|
stream.add(
|
|
gulp.src(dependencies.styles[dependency])
|
|
.pipe(gulp.dest(`css/vendor/${dependency}`))
|
|
);
|
|
}
|
|
|
|
return stream;
|
|
});
|
|
|
|
gulp.task('eslint', function() {
|
|
return gulp.src([
|
|
'js/main.js',
|
|
'js/components/**/*.js',
|
|
'js/models/**/*.js',
|
|
'js/services/**/*.js',
|
|
'js/filters/**/*.js'
|
|
])
|
|
.pipe(eslint())
|
|
.pipe(eslint.format())
|
|
.pipe(eslint.failAfterError());
|
|
});
|
|
|
|
gulp.task('stylelint', function() {
|
|
return gulp.src('css/*.scss')
|
|
.pipe(stylelint({
|
|
reporters: [
|
|
{formatter: 'string', console: true}
|
|
]
|
|
}));
|
|
});
|
|
|
|
gulp.task('karma', function(done){
|
|
new KarmaServer({
|
|
configFile: __dirname + '/karma.conf.js',
|
|
singleRun: true
|
|
}, done).start();
|
|
});
|
|
|
|
|
|
gulp.task('default', ['vendor', 'eslint', 'stylelint', 'build']);
|
|
|
|
gulp.task('test', ['karma']);
|
|
|
|
gulp.task('watch', ['default'], function() {
|
|
gulp.watch(['js/**/*.js', '!js/public/**/*.js', 'css/*.scss'], ['eslint', 'stylelint', 'build']);
|
|
});
|