module.exports = function(grunt) { grunt.initConfig({ browserify: { basic: { src: ['app/ribica.js'], dest: 'build/ribica.bundle.js', options: { browserifyOptions: { standalone: 'RIBICA', debug: true, }, transform: ['reactify'], watch: true } } }, watch: { files: ['build/ribica.bundle.js', 'app/css/*.css'], tasks: ['config-dev', 'concat:css', 'concat:js'] }, connect: { server: { options: { port: 3001, base: 'build' } } }, uglify: { my_target: { files: { 'build/ribica.min.js': ['build/ribica.js'] } } }, config: { dev: { options: { variables: { apiEndpoint: 'http://localhost:4567' } } }, prod: { options: { variables: { apiEndpoint: '/api' } } } }, replace: { dist: { options: { variables: { 'apiEndpoint': '<%= grunt.config.get("apiEndpoint") %>' }, force: true }, files: [ {expand: true, flatten: true, src: ['build/ribica.bundle.js'], dest: 'build/'} ] } }, concat: { css: { src: [ 'node_modules/bootstrap/dist/css/bootstrap.min.css', 'app/css/*.css' ], dest: 'build/ribica.css' }, js: { src: ['node_modules/jquery/dist/jquery.min.js', 'node_modules/bootstrap/dist/css/bootstrap.min.js', 'build/ribica.bundle.js'], dest: 'build/ribica.js' } } }); grunt.loadNpmTasks('grunt-contrib-watch'); grunt.loadNpmTasks('grunt-contrib-concat'); grunt.loadNpmTasks('grunt-browserify'); grunt.loadNpmTasks('grunt-contrib-connect'); grunt.loadNpmTasks('grunt-contrib-uglify'); grunt.loadNpmTasks('grunt-config'); grunt.loadNpmTasks('grunt-replace'); grunt.registerTask('default', []); grunt.registerTask('config-dev', ['config:dev', 'replace']); grunt.registerTask('config-prod', ['config:prod', 'replace']); grunt.registerTask('dev', ['browserify', 'config-dev','concat:css', 'concat:js', 'connect:server:keepalive']); grunt.registerTask('build', ['browserify', 'config-prod', 'concat:css', 'concat:js']); };