From 94a12f941d3b930571f58626ea155531a470042c Mon Sep 17 00:00:00 2001 From: William Toohey Date: Fri, 15 Apr 2016 00:54:18 +1000 Subject: [PATCH] Much improved build --- README.md | 2 +- gulpfile.js | 50 +++++++++++++++++++++++++++++--------------------- package.json | 38 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 68 insertions(+), 22 deletions(-) create mode 100644 package.json diff --git a/README.md b/README.md index d319711..dd229ef 100644 --- a/README.md +++ b/README.md @@ -41,6 +41,6 @@ Install [Node.js](https://nodejs.org/en/), v5 preferred. Install the required packages for the build: ```bash npm install gulp -g -npm install gulp-sourcemaps gulp-babel babel-preset-es2015 gulp-uglify gulp-concat gulp-cssnano gulp-autoprefixer gulp-order del jshint gulp-jshint +npm install ``` Build with `gulp`. Make a release folder with `gulp release`. For seamless development, auto-minify changed files with `gulp watch`. diff --git a/gulpfile.js b/gulpfile.js index 191c927..3a785d9 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -7,22 +7,16 @@ var minifyCSS = require('gulp-cssnano'); var autoprefixer = require('gulp-autoprefixer'); var order = require("gulp-order"); var del = require('del'); +var newer = require('gulp-newer'); var jshint = require('gulp-jshint'); +var plumber = require('gulp-plumber'); -gulp.task('default', ['css', 'audio', 'minify'], function() { - -}); +gulp.task('default', ['css', 'audio', 'minify']); gulp.task('css', function(){ return gulp.src('src/css/**/*.css') - .pipe(order([ - "style.css", // base - "hues-m.css", // modern - "hues-x.css", // xmas - "hues-h.css", // hlwn - "hues-r.css", // retro - "hues-w.css" // weed - ])) + .pipe(plumber()) + .pipe(newer('css/hues-min.css')) .pipe(sourcemaps.init()) .pipe(autoprefixer('last 2 version', 'ios 6', 'android 4')) .pipe(concat('hues-min.css')) @@ -31,19 +25,27 @@ gulp.task('css', function(){ .pipe(gulp.dest('css')); }); -gulp.task("audio", function () { - gulp.src(["src/js/audio/aurora.js", "src/js/audio/mpg123.js"]) - .pipe(concat("audio-min.js")) - .pipe(uglify()) - .pipe(gulp.dest("lib")); - - gulp.src(["src/js/audio/ogg.js", "src/js/audio/vorbis.js"]) - .pipe(uglify()) - .pipe(gulp.dest("lib")); +gulp.task("mp3", function () { + return gulp.src(["src/js/audio/aurora.js", "src/js/audio/mpg123.js"]) + .pipe(newer('lib/audio-min.js')) + .pipe(concat("audio-min.js")) + .pipe(uglify()) + .pipe(gulp.dest("lib")); +}); + +gulp.task("oggvorbis", function () { + return gulp.src(["src/js/audio/ogg.js", "src/js/audio/vorbis.js"]) + .pipe(newer('lib')) + .pipe(uglify()) + .pipe(gulp.dest("lib")); }); +gulp.task("audio", ["mp3", "oggvorbis"]); + gulp.task("minify", function () { return gulp.src("src/js/*.js") + .pipe(plumber()) + .pipe(newer('lib/hues-min.js')) .pipe(sourcemaps.init()) .pipe(babel()) .pipe(uglify()) @@ -91,4 +93,10 @@ gulp.task('release', ['default', 'lint'], function() { gulp.src(['lib/workers/**/*','lib/zip*'], {base: 'lib'}) .pipe(uglify()) .pipe(gulp.dest("release/lib")); -}); \ No newline at end of file +}); + +function onError(err) { + gutil.beep(); + console.log(err); + this.emit('end'); +}; diff --git a/package.json b/package.json new file mode 100644 index 0000000..6b76c46 --- /dev/null +++ b/package.json @@ -0,0 +1,38 @@ +{ + "name": "0x40-web", + "version": "3.0.0", + "description": "Pretty images and colours", + "main": "index.html", + "directories": { + "doc": "docs" + }, + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/mon/0x40-web.git" + }, + "author": "mon", + "license": "MIT", + "bugs": { + "url": "https://github.com/mon/0x40-web/issues" + }, + "homepage": "https://github.com/mon/0x40-web#readme", + "devDependencies": { + "babel-preset-es2015": "^6.6.0", + "del": "^2.2.0", + "gulp": "^3.9.1", + "gulp-autoprefixer": "^3.1.0", + "gulp-babel": "^6.1.2", + "gulp-concat": "^2.6.0", + "gulp-cssnano": "^2.1.1", + "gulp-jshint": "^2.0.0", + "gulp-newer": "^1.1.0", + "gulp-order": "^1.1.1", + "gulp-plumber": "^1.1.0", + "gulp-sourcemaps": "^1.6.0", + "gulp-uglify": "^1.5.3", + "jshint": "^2.9.1" + } +}