Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
276 changes: 142 additions & 134 deletions gulpfile.js
Original file line number Diff line number Diff line change
@@ -1,29 +1,29 @@
var gulp = require('gulp');
var notify = require('gulp-notify');
var source = require('vinyl-source-stream');
var browserify = require('browserify');
var babelify = require('babelify');
var ngAnnotate = require('browserify-ngannotate');
var browserSync = require('browser-sync').create();
var rename = require('gulp-rename');
var { src, dest, parallel, series } = require('gulp');
var notify = require('gulp-notify');
var source = require('vinyl-source-stream');
var browserify = require('browserify');
var babelify = require('babelify');
var ngAnnotate = require('browserify-ngannotate');
var browserSync = require('browser-sync').create();
var rename = require('gulp-rename');
var templateCache = require('gulp-angular-templatecache');
var uglify = require('gulp-uglify');
var merge = require('merge-stream');
var glob = require('glob');
var sass = require('gulp-sass');
var autoprefixer = require('gulp-autoprefixer');
var NwBuilder = require('nw-builder');
var gutil = require('gulp-util');
var uglify = require('gulp-uglify');
var merge = require('merge-stream');
var glob = require('glob');
var sass = require('gulp-sass');
var autoprefixer = require('gulp-autoprefixer');
var NwBuilder = require('nw-builder');
var gutil = require('gulp-util');

// Where our files are located
var jsFiles = "src/app/**/*.js";
var jsFiles = "src/app/**/*.js";
var viewFiles = "src/app/**/*.html";
var specFiles = "tests/specs/*.spec.js"
var specsArray = glob.sync(specFiles);


var interceptErrors = function(error) {
var args = Array.prototype.slice.call(arguments);
var interceptErrors = function (error) {
var args = Array.prototype.slice.call(arguments);

// Send error to notification center with gulp-notify
notify.onError({
Expand All @@ -39,144 +39,152 @@ var autoprefixerOptions = {
browsers: ['last 6 versions']
};

// Task for app files
gulp.task('browserify', ['views'], function() {
return browserify({
extensions: ['.jsx', '.js'],
debug: true,
cache: {},
packageCache: {},
fullPaths: true,
entries: './src/app/app.js',
})
// .transform(ngAnnotate)
// Task for test files
function browserifyTests() {
return browserify(specsArray)
// .transform(babelify, {presets: ["es2015"]})
.transform(babelify.configure({
presets: [['es2015', {
targets: {
node: "current"
}
}]],
plugins: [
"syntax-dynamic-import",
"transform-runtime",
"transform-async-to-generator"
],
ignore: /(bower_components)|(node_modules)/
presets: [['es2015', {
targets: {
node: "current"
}
}]],
plugins: [
"syntax-dynamic-import",
"transform-runtime",
"transform-async-to-generator"
],
ignore: /(bower_components)|(node_modules)/
}))
.transform(ngAnnotate)
.bundle()
.on("error", interceptErrors)
.pipe(source('main.js'))
.pipe(gulp.dest('./build/'));
});
.on('error', interceptErrors)
//Pass desired output filename to vinyl-source-stream
.pipe(source('tests.js'))
// Start piping stream to tasks!
.pipe(dest('build/tests/'));
};
exports.browserifyTests = browserifyTests;

// Task for test files
gulp.task('browserifyTests', function() {
return browserify(specsArray)
// .transform(babelify, {presets: ["es2015"]})
.transform(babelify.configure({
presets: [['es2015', {
targets: {
node: "current"
}
}]],
plugins: [
"syntax-dynamic-import",
"transform-runtime",
"transform-async-to-generator"
],
ignore: /(bower_components)|(node_modules)/
}))
.transform(ngAnnotate)
.bundle()
.on('error', interceptErrors)
//Pass desired output filename to vinyl-source-stream
.pipe(source('tests.js'))
// Start piping stream to tasks!
.pipe(gulp.dest('./build/tests/'));
});
// Just move files to build/
function html() {
return src("src/start.html")
.on('error', interceptErrors)
.pipe(dest('build/'));
};
exports.html = html;

function tests() {
return src("tests/start.html")
.on('error', interceptErrors)
.pipe(dest('build/tests'));
};
exports.tests = tests;

// Just move files to build/
gulp.task('html', function() {
return gulp.src("src/start.html")
.on('error', interceptErrors)
.pipe(gulp.dest('./build/'));
});

gulp.task('tests', function() {
return gulp.src("tests/start.html")
.on('error', interceptErrors)
.pipe(gulp.dest('./build/tests'));
});

gulp.task('js', function() {
return gulp.src("src/vendors/**/*")
function js() {
return src("src/vendors/**/*")
.on('error', interceptErrors)
.pipe(gulp.dest('./build/vendors'));
});
.pipe(dest('build/vendors'));
};
exports.js = js;

gulp.task('sass', function () {
return gulp.src('src/sass/nano.scss')
function sassTask() {
return src('src/sass/nano.scss')
.pipe(sass().on('error', sass.logError))
.pipe(autoprefixer())
.pipe(gulp.dest('./build/css'));
});
.pipe(dest('build/css'));
};
exports.sassTask = sassTask;

gulp.task('css', function() {
return gulp.src('src/css/**/*')
function css() {
return src('src/css/**/*')
.on('error', interceptErrors)
.pipe(gulp.dest('./build/css'))
})
.pipe(dest('build/css'))
};
exports.css = css;

gulp.task('images', function() {
return gulp.src("src/images/**/*")
function images() {
return src("src/images/**/*")
.on('error', interceptErrors)
.pipe(gulp.dest('./build/images'));
});
.pipe(dest('build/images'));
};
exports.images = images;

gulp.task('package', function() {
return gulp.src("src/package.json")
.on('error', interceptErrors)
.pipe(gulp.dest('./build/'));
});
function packageTask() {
return src("src/package.json")
.on('error', interceptErrors)
.pipe(dest('build/'));
};
exports.packageTask = packageTask;

// Cache template
gulp.task('views', function() {
return gulp.src(viewFiles)
.pipe(templateCache({
standalone: true
}))
.on('error', interceptErrors)
.pipe(rename("app.templates.js"))
.pipe(gulp.dest('./src/app/config/'));
});
function views() {
return src(viewFiles)
.pipe(templateCache({
standalone: true
}))
.on('error', interceptErrors)
.pipe(rename("app.templates.js"))
.pipe(dest('src/app/config/'));
};
exports.views = views;

// Build App
gulp.task('app', function () {
var nw = new NwBuilder({
version: '0.25.4',
files: './build/**',
buildDir: './dist',
buildType: 'versioned',
winIco: './build/images/logomark.ico',
macIcns: './build/images/NanoWallet.icns',
platforms: ['win64', 'osx64', 'linux64']
});
// Log stuff you want
nw.on('log', function (msg) {
gutil.log('nw-builder', msg);
});
// Build returns a promise, return it so the task isn't called in parallel
return nw.build().catch(function (err) {
gutil.log('nw-builder', err);
});
function appTask() {
var nw = new NwBuilder({
version: '0.25.4',
files: 'build/**',
buildDir: 'dist',
buildType: 'versioned',
winIco: 'build/images/logomark.ico',
macIcns: 'build/images/NanoWallet.icns',
platforms: ['win64', 'osx64', 'linux64']
});
// Log stuff you want
nw.on('log', function (msg) {
gutil.log('nw-builder', msg);
});
// Build returns a promise, return it so the task isn't called in parallel
return nw.build().catch(function (err) {
gutil.log('nw-builder', err);
});
};
exports.appTask = appTask;

// Task for app files
function browserifyTask() {
return browserify({
extensions: ['.jsx', '.js'],
debug: true,
cache: {},
packageCache: {},
fullPaths: true,
entries: 'src/app/app.js',
})
// .transform(ngAnnotate)
.transform(babelify.configure({
presets: [['es2015', {
targets: {
node: "current"
}
}]],
plugins: [
"syntax-dynamic-import",
"transform-runtime",
"transform-async-to-generator"
],
ignore: /(bower_components)|(node_modules)/
}))
.transform(ngAnnotate)
.bundle()
.on("error", interceptErrors)
.pipe(source('main.js'))
.pipe(dest('build/'));
};
exports.browserifyTask = browserifyTask;

// Run Tasks
gulp.task('default', ['html', 'js', 'sass', 'css', 'images', 'package', 'browserify', 'tests', 'browserifyTests'], function() {
});
exports.default = series(html, js, sassTask, css, images, packageTask, browserifyTask, tests);

// Build packaged apps for production
gulp.task('build-app', ['html', 'js', 'sass', 'css', 'images', 'package', 'app'], function() {
});
exports.buildApp = series(html, js, sassTask, css, images, packageTask, appTask);
Loading