module.exports = function(grunt) { grunt.loadNpmTasks("grunt-browserify"); grunt.loadNpmTasks("grunt-contrib-uglify-es"); grunt.loadNpmTasks("grunt-browser-sync"); require("matchdep") .filterDev("grunt-*") .forEach(grunt.loadNpmTasks); grunt.initConfig({ pkg: grunt.file.readJSON("package.json"), watch: { options: { livereload: true }, source: { files: ["src/**/*", "Gruntfile.js", "examples/lib/*","examples/demo.js"], tasks: ["compile"] } }, browserify: { core: { src: ["src/ImageSequencer.js"], dest: "dist/image-sequencer.js" }, ui: { src: ["examples/demo.js"], dest: "dist/image-sequencer-ui.js" }, prodcore: { src: ["src/ImageSequencer.js"], dest: "dist/image-sequencer.brow.js" }, produi: { src: ["examples/demo.js"], dest: "dist/image-sequencer-ui.brow.js" } }, uglify: { core: { src: ["./dist/image-sequencer.js"], dest: "./dist/image-sequencer.min.js" }, ui: { src: ['dist/image-sequencer-ui.js'], dest: 'dist/image-sequencer-ui.min.js' }, prodcore: { src: ["dist/image-sequencer.brow.js"], dest: "dist/image-sequencer.js" }, produi: { src: ["dist/image-sequencer-ui.brow.js"], dest: "dist/image-sequencer-ui.js" } }, browserSync: { dev: { options: { watchTask: true, server: "./" } } } }); /* Default (development): Watch files and build on change. */ grunt.registerTask("default", ["watch"]); grunt.registerTask("build", ["browserify:core", "browserify:ui", "uglify:core", "uglify:ui"]); grunt.registerTask("serve", ["browserify:core", "browserify:ui", "browserSync", "watch"]); grunt.registerTask("compile", ["browserify:core", "browserify:ui"]); grunt.registerTask("production", ["browserify:prodcore", "browserify:produi", "uglify:prodcore", "uglify:produi"]); };