electronic-kit-start
Version:
Electronic kit start for devlopment on electron
95 lines (81 loc) • 2.37 kB
JavaScript
var argv = require('yargs').argv;
var gulp = require('gulp');
var gulpif = require('gulp-if');
var uglify = require('gulp-uglify');
var dependencies = [
'core-js/client/*.min.js',
'zone.js/dist/zone.js',
'reflect-metadata/Reflect.js',
'systemjs/dist/system.src.js',
'rxjs/**/*.js',
'@angular/**/*.js',
'angular2-in-memory-web-api/*.js',
];
var modules = [
// Example: 'iconv-lite/**/*',
];
gulp.task("resources", () => {
return gulp.src(["src/resources/**/*"])
.pipe(gulp.dest("./build/"))
});
gulp.task("modules", () => {
return gulp.src(modules, {cwd: "node_modules/**"})
.pipe(gulp.dest("./build/node_modules/"));
});
gulp.task("libs", () => {
return gulp.src(dependencies, {cwd: "node_modules/**"})
.pipe(gulp.dest("./build/libs/"));
});
gulp.task('styles', () => {
var postcss = require('gulp-postcss');
var autoreset = require('postcss-autoreset');
var simplevars = require('postcss-simple-vars');
var nested = require('postcss-nested');
var lost = require('lost');
var cssnext = require('postcss-cssnext');
var processors = [
autoreset({
reset: {
margin: 0,
padding: 0,
borderRadius: 0,
},
}),
simplevars(),
nested(),
lost(),
cssnext(),
];
return gulp.src('./src/styles/*.css')
.pipe(postcss(processors))
.pipe(gulp.dest('./build/'));
});
gulp.task('ts-app', () => {
var ts = require('gulp-typescript');
var project = ts.createProject('tsconfig-app.json');
return project.src()
.pipe(ts(project))
.pipe(gulpif(argv.minify, uglify()))
.pipe(gulp.dest('./build/app'));
});
gulp.task('ts-electron', () => {
var ts = require('gulp-typescript');
var project = ts.createProject('tsconfig-electron.json');
return project.src()
.pipe(ts(project))
.pipe(gulpif(argv.minify, uglify()))
.pipe(gulp.dest('./build/electron'));
});
gulp.task('templates', () => {
return gulp.src(['./src/templates/**/*.html'])
.pipe(gulp.dest('./build/'))
});
gulp.task('ts', ['ts-app', 'ts-electron']);
gulp.task('build', ['templates', 'resources', 'styles', 'ts', 'libs', 'modules']);
gulp.task('watch', ['build'], () => {
gulp.watch('./src/app/**/*', ['ts-app']);
gulp.watch('./src/electron/**/*', ['ts-electron']);
gulp.watch('./src/resources/**/*', ['resources']);
gulp.watch('./src/styles/**/*', ['styles']);
gulp.watch('./src/templates/**/*', ['templates']);
});