diff --git a/.gitignore b/.gitignore index 7321330..af6064d 100644 --- a/.gitignore +++ b/.gitignore @@ -30,3 +30,5 @@ npm-debug.log public/lib/* db/* +public/js/* +public/css/* diff --git a/Gruntfile.js b/Gruntfile.js index 3c90156..1792a5a 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -2,10 +2,12 @@ module.exports = function(grunt) { - //Load NPM tasks grunt.loadNpmTasks('grunt-contrib-watch'); grunt.loadNpmTasks('grunt-contrib-jshint'); + grunt.loadNpmTasks('grunt-contrib-uglify'); + grunt.loadNpmTasks('grunt-contrib-concat'); + grunt.loadNpmTasks('grunt-css'); grunt.loadNpmTasks('grunt-mocha-test'); grunt.loadNpmTasks('grunt-nodemon'); grunt.loadNpmTasks('grunt-concurrent'); @@ -48,19 +50,67 @@ module.exports = function(grunt) { }, jshint: { all: { - src: ['Gruntfile.js', 'insight.js', 'app/**/*.js', 'public/js/**','lib/*.js'], + src: ['Gruntfile.js', 'insight.js', 'app/**/*.js', 'public/src/js/**/*.js','lib/*.js'], options: { jshintrc: true } } }, + concat: { + options: { + banner: '\'use strict\';\n', + process: function(src, filepath) { + return '// Source: ' + filepath + '\n' + + src.replace(/(^|\n)[ \t]*('use strict'|"use strict");?\s*/g, '$1'); + } + }, + vendors: { + src: ['public/lib/momentjs/min/moment.min.js', 'public/lib/qrcode-generator/js/qrcode.js', 'public/lib/zeroclipboard/ZeroClipboard.min.js'], + dest: 'public/js/vendors.js' + }, + angular: { + src: ['public/lib/angular/angular.min.js', 'public/lib/angular-resource/angular-resource.min.js', 'public/lib/angular-route/angular-route.min.js', 'public/lib/angular-qrcode/qrcode.js', 'public/lib/angular-animate/angular-animate.min.js', 'public/lib/angular-bootstrap/ui-bootstrap.min.js', 'public/lib/angular-bootstrap/ui-bootstrap-tpls.min.js', 'public/lib/angular-ui-utils/ui-utils.min.js'], + dest: 'public/js/angularjs-all.js' + }, + main: { + src: ['public/src/js/app.js', 'public/src/js/controllers/*.js', 'public/src/js/services/*.js', 'public/src/js/directives.js', 'public/src/js/filters.js', 'public/src/js/config.js', 'public/src/js/init.js'], + dest: 'public/js/main.js' + }, + css: { + src: ['public/src/css/**/*.css'], + dest: 'public/css/main.css' + } + }, + uglify: { + options: { + banner: '/*! <%= pkg.name %> <%= pkg.version %> */\n', + mangle: false + }, + vendors: { + src: 'public/js/vendors.js', + dest: 'public/js/vendors.min.js' + }, + angular: { + src: 'public/js/angularjs-all.js', + dest: 'public/js/angularjs-all.min.js' + }, + main: { + src: 'public/js/main.js', + dest: 'public/js/main.min.js' + } + }, + cssmin: { + css: { + src: 'public/css/main.css', + dest: 'public/css/main.min.css' + } + }, mochaTest: { options: { reporter: 'spec', }, src: ['test/**/*.js'], }, - nodemon: { dev: { script: 'insight.js', @@ -93,8 +143,11 @@ module.exports = function(grunt) { grunt.option('force', true); //Default task(s). - grunt.registerTask('default', ['jshint','concurrent']); - + grunt.registerTask('default', ['jshint', 'concurrent']); + + //Compile task (concat + minify) + grunt.registerTask('compile', ['concat', 'uglify', 'cssmin']); + //Test task. grunt.registerTask('test', ['env:test', 'mochaTest']); }; diff --git a/app/views/includes/foot.jade b/app/views/includes/foot.jade index 23b6ce8..28eabac 100755 --- a/app/views/includes/foot.jade +++ b/app/views/includes/foot.jade @@ -1,46 +1,11 @@ #footer(data-ng-include="'/views/includes/footer.html'", role='navigation') +//Vendors script(type='text/javascript', src='/socket.io/socket.io.js') -script(type='text/javascript', src='/lib/momentjs/min/moment.min.js') -script(type='text/javascript', src='/lib/qrcode-generator/js/qrcode.js') -script(type='text/javascript', src='/lib/zeroclipboard/ZeroClipboard.min.js') +script(type='text/javascript', src='/js/vendors.min.js') //AngularJS -script(type='text/javascript', src='/lib/angular/angular.min.js') -script(type='text/javascript', src='/lib/angular-resource/angular-resource.min.js') -script(type='text/javascript', src='/lib/angular-route/angular-route.min.js') -script(type='text/javascript', src='/lib/angular-qrcode/qrcode.js') -script(type='text/javascript', src='/lib/angular-animate/angular-animate.min.js') - -//Angular UI -script(type='text/javascript', src='/lib/angular-bootstrap/ui-bootstrap.min.js') -script(type='text/javascript', src='/lib/angular-bootstrap/ui-bootstrap-tpls.min.js') -script(type='text/javascript', src='/lib/angular-ui-utils/ui-utils.min.js') +script(type='text/javascript', src='/js/angularjs-all.min.js') //Application Init -script(type='text/javascript', src='/js/app.js') -script(type='text/javascript', src='/js/config.js') -script(type='text/javascript', src='/js/directives.js') -script(type='text/javascript', src='/js/filters.js') - -//Application Services -script(type='text/javascript', src='/js/services/global.js') -script(type='text/javascript', src='/js/services/status.js') -script(type='text/javascript', src='/js/services/address.js') -script(type='text/javascript', src='/js/services/transactions.js') -script(type='text/javascript', src='/js/services/blocks.js') -script(type='text/javascript', src='/js/services/socket.js') -script(type='text/javascript', src='/js/services/currency.js') - -//Application Controllers -script(type='text/javascript', src='/js/controllers/index.js') -script(type='text/javascript', src='/js/controllers/header.js') -script(type='text/javascript', src='/js/controllers/search.js') -script(type='text/javascript', src='/js/controllers/blocks.js') -script(type='text/javascript', src='/js/controllers/transactions.js') -script(type='text/javascript', src='/js/controllers/address.js') -script(type='text/javascript', src='/js/controllers/status.js') -script(type='text/javascript', src='/js/controllers/footer.js') -script(type='text/javascript', src='/js/controllers/connection.js') -script(type='text/javascript', src='/js/controllers/currency.js') -script(type='text/javascript', src='/js/init.js') +script(type='text/javascript', src='/js/main.min.js') diff --git a/app/views/includes/head.jade b/app/views/includes/head.jade index ca423a5..51ce250 100755 --- a/app/views/includes/head.jade +++ b/app/views/includes/head.jade @@ -13,4 +13,4 @@ head link(rel='stylesheet', href='//fonts.googleapis.com/css?family=Ubuntu:300,400,500,700,400italic') link(rel='stylesheet', href='/lib/bootstrap/dist/css/bootstrap.min.css') - link(rel='stylesheet', href='/css/common.css') + link(rel='stylesheet', href='/css/main.min.css') diff --git a/package.json b/package.json index 5d60909..74c14e1 100644 --- a/package.json +++ b/package.json @@ -84,9 +84,12 @@ "devDependencies": { "grunt-contrib-watch": "latest", "grunt-contrib-jshint": "latest", + "grunt-contrib-concat": "~0.3.0", + "grunt-contrib-uglify": "~0.3.2", "grunt-nodemon": "latest", "grunt-concurrent": "latest", "grunt-mocha-test": "latest", - "should": "latest" + "should": "latest", + "grunt-css": "~0.5.4" } } diff --git a/public/css/common.css b/public/src/css/common.css similarity index 100% rename from public/css/common.css rename to public/src/css/common.css diff --git a/public/js/app.js b/public/src/js/app.js similarity index 100% rename from public/js/app.js rename to public/src/js/app.js diff --git a/public/js/config.js b/public/src/js/config.js similarity index 100% rename from public/js/config.js rename to public/src/js/config.js diff --git a/public/js/controllers/address.js b/public/src/js/controllers/address.js similarity index 100% rename from public/js/controllers/address.js rename to public/src/js/controllers/address.js diff --git a/public/js/controllers/blocks.js b/public/src/js/controllers/blocks.js similarity index 100% rename from public/js/controllers/blocks.js rename to public/src/js/controllers/blocks.js diff --git a/public/js/controllers/connection.js b/public/src/js/controllers/connection.js similarity index 100% rename from public/js/controllers/connection.js rename to public/src/js/controllers/connection.js diff --git a/public/js/controllers/currency.js b/public/src/js/controllers/currency.js similarity index 100% rename from public/js/controllers/currency.js rename to public/src/js/controllers/currency.js diff --git a/public/js/controllers/footer.js b/public/src/js/controllers/footer.js similarity index 100% rename from public/js/controllers/footer.js rename to public/src/js/controllers/footer.js diff --git a/public/js/controllers/header.js b/public/src/js/controllers/header.js similarity index 100% rename from public/js/controllers/header.js rename to public/src/js/controllers/header.js diff --git a/public/js/controllers/index.js b/public/src/js/controllers/index.js similarity index 100% rename from public/js/controllers/index.js rename to public/src/js/controllers/index.js diff --git a/public/js/controllers/search.js b/public/src/js/controllers/search.js similarity index 100% rename from public/js/controllers/search.js rename to public/src/js/controllers/search.js diff --git a/public/js/controllers/status.js b/public/src/js/controllers/status.js similarity index 100% rename from public/js/controllers/status.js rename to public/src/js/controllers/status.js diff --git a/public/js/controllers/transactions.js b/public/src/js/controllers/transactions.js similarity index 100% rename from public/js/controllers/transactions.js rename to public/src/js/controllers/transactions.js diff --git a/public/js/directives.js b/public/src/js/directives.js similarity index 100% rename from public/js/directives.js rename to public/src/js/directives.js diff --git a/public/js/filters.js b/public/src/js/filters.js similarity index 100% rename from public/js/filters.js rename to public/src/js/filters.js diff --git a/public/js/init.js b/public/src/js/init.js similarity index 100% rename from public/js/init.js rename to public/src/js/init.js diff --git a/public/js/services/address.js b/public/src/js/services/address.js similarity index 100% rename from public/js/services/address.js rename to public/src/js/services/address.js diff --git a/public/js/services/blocks.js b/public/src/js/services/blocks.js similarity index 100% rename from public/js/services/blocks.js rename to public/src/js/services/blocks.js diff --git a/public/js/services/currency.js b/public/src/js/services/currency.js similarity index 100% rename from public/js/services/currency.js rename to public/src/js/services/currency.js diff --git a/public/js/services/global.js b/public/src/js/services/global.js similarity index 100% rename from public/js/services/global.js rename to public/src/js/services/global.js diff --git a/public/js/services/socket.js b/public/src/js/services/socket.js similarity index 100% rename from public/js/services/socket.js rename to public/src/js/services/socket.js diff --git a/public/js/services/status.js b/public/src/js/services/status.js similarity index 100% rename from public/js/services/status.js rename to public/src/js/services/status.js diff --git a/public/js/services/transactions.js b/public/src/js/services/transactions.js similarity index 100% rename from public/js/services/transactions.js rename to public/src/js/services/transactions.js