diff --git a/.gitignore b/.gitignore index ed1339448..1cf673978 100644 --- a/.gitignore +++ b/.gitignore @@ -41,6 +41,9 @@ lib/* !lib/socket.io.js js/copayBundle.js +js/copayMain.js +css/copay.min.css +css/vendors.min.css webapp browser-extensions/chrome/copay-chrome-extension diff --git a/Gruntfile.js b/Gruntfile.js index 53942da0b..747f418a7 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -5,28 +5,60 @@ module.exports = function(grunt) { grunt.loadNpmTasks('grunt-mocha-test'); grunt.loadNpmTasks('grunt-markdown'); grunt.loadNpmTasks('grunt-shell'); + grunt.loadNpmTasks('grunt-contrib-cssmin'); + grunt.loadNpmTasks('grunt-contrib-concat'); + grunt.loadNpmTasks('grunt-contrib-uglify'); // Project Configuration grunt.initConfig({ shell: { - browserify: { + prod: { + options: { + stdout: false, + stderr: false + }, + command: 'node ./util/build.js' + }, + dev: { options: { stdout: true, stderr: true }, - command: grunt.option('target') === 'dev' ? - 'node ./util/build.js -d ' : 'node ./util/build.js ' + command: 'node ./util/build.js -d' } }, watch: { + options: { + dateFormat: function(time) { + grunt.log.writeln('The watch finished in ' + time + 'ms at ' + (new Date()).toString()); + grunt.log.writeln('Waiting for more changes...'); + }, + }, readme: { files: ['README.md'], tasks: ['markdown'] }, scripts: { - files: ['*.js', '*/*/*.js', '**/*.js', '*.html', '!**/node_modules/**', '!lib/**js', '!browser/vendor-bundle.js', '!js/copayBundle.js'], - tasks: ['shell'], + files: [ + 'js/models/**/*.js' + ], + tasks: ['shell:dev'] }, + css: { + files: ['css/src/*.css'], + tasks: ['cssmin:copay'] + }, + main: { + files: [ + 'js/app.js', + 'js/directives.js', + 'js/filters.js', + 'js/routes.js', + 'js/services/*.js', + 'js/controllers/*.js' + ], + tasks: ['concat:main'] + } }, mochaTest: { options: { @@ -43,9 +75,74 @@ module.exports = function(grunt) { ext: '.html' }] } + }, + concat: { + vendors: { + src: [ + 'lib/moment/min/moment.min.js', + 'lib/qrcode-generator/js/qrcode.js', + 'lib/peer.js', + 'lib/bitcore.js', + 'lib/crypto-js/rollups/sha256.js', + 'lib/crypto-js/rollups/pbkdf2.js', + 'lib/crypto-js/rollups/aes.js', + 'lib/file-saver/FileSaver.js', + 'lib/socket.io-client/socket.io.js', + 'lib/sjcl.js', + 'lib/ios-imagefile-megapixel/megapix-image.js', + 'lib/qrcode-decoder-js/lib/qrcode-decoder.min.js' + ], + dest: 'lib/vendors.js' + }, + angular: { + src: [ + 'lib/angular/angular.min.js', + 'lib/angular-route/angular-route.min.js', + 'lib/angular-moment/angular-moment.js', + 'lib/angular-qrcode/qrcode.js', + 'lib/ng-idle/angular-idle.min.js', + 'lib/angular-foundation/mm-foundation.min.js', + 'lib/angular-foundation/mm-foundation-tpls.min.js' + ], + dest: 'lib/angularjs-all.js' + }, + main: { + src: [ + 'js/app.js', + 'js/directives.js', + 'js/filters.js', + 'js/routes.js', + 'js/services/*.js', + 'js/controllers/*.js' + ], + dest: 'js/copayMain.js' + } + }, + cssmin: { + copay: { + files: { + 'css/copay.min.css': ['css/src/*.css'], + } + }, + vendors: { + files: { + 'css/vendors.min.css': ['css/foundation.min.css', 'css/foundation-icons.css', 'lib/angular/angular-csp.css'] + } + } + }, + uglify: { + options: { + mangle: false + }, + prod: { + files: { + 'js/copayMain.js': ['js/copayMain.js'] + } + } } }); - grunt.registerTask('default', ['shell', 'watch']); + grunt.registerTask('default', ['shell:dev', 'concat', 'cssmin']); + grunt.registerTask('prod', ['shell:prod', 'concat', 'cssmin', 'uglify']); }; diff --git a/README.md b/README.md index e95cad119..b3015af0a 100644 --- a/README.md +++ b/README.md @@ -32,7 +32,11 @@ Build Copay: ``` npm install bower install -grunt shell --target=dev +grunt +``` +For production environments: +``` +grunt prod ``` Open Copay: diff --git a/css/main.css b/css/src/main.css similarity index 99% rename from css/main.css rename to css/src/main.css index 4b98dc87b..f7e34e300 100644 --- a/css/main.css +++ b/css/src/main.css @@ -1194,4 +1194,5 @@ a.text-warning:hover {color: #FD7262;} padding: 50px; } + /*-----------------------------------------------------------------*/ diff --git a/css/mobile.css b/css/src/mobile.css similarity index 100% rename from css/mobile.css rename to css/src/mobile.css diff --git a/index.html b/index.html index 848b2d4b0..f3a30b346 100644 --- a/index.html +++ b/index.html @@ -5,11 +5,8 @@