Concatenation and minification of files to improve performance using Grunt tool.

This commit is contained in:
Gustavo Maximiliano Cortez 2014-08-21 16:07:25 -03:00
parent a693243b35
commit 901b08223a
3 changed files with 101 additions and 60 deletions

View File

@ -5,28 +5,54 @@ 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',
'!*.html',
'!**/node_modules/**',
'!lib/**js',
'!browser/vendor-bundle.js',
'!js/copayBundle.js'
],
tasks: ['shell']
},
css: {
files: ['css/src/*.css'],
tasks: ['cssmin']
}
},
mochaTest: {
options: {
@ -43,9 +69,70 @@ 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: {
combine: {
files: {
'css/copay.min.css': ['css/src/*.css'],
'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']);
};

View File

@ -5,11 +5,8 @@
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>Copay - Multisignature Wallet</title>
<link rel="stylesheet" href="css/foundation.min.css">
<link rel="stylesheet" href="css/foundation-icons.css">
<link rel="stylesheet" href="lib/angular/angular-csp.css">
<link rel="stylesheet" href="css/main.css">
<link rel="stylesheet" href="css/mobile.css">
<link rel="stylesheet" href="css/vendors.min.css">
<link rel="stylesheet" href="css/copay.min.css">
<link rel="shortcut icon" href="img/favicon.ico">
</head>
<body ng-cloak class="ng-cloak">
@ -60,59 +57,13 @@
<!-- shell must be loaded before moment due to the way moment loads in a commonjs env -->
<script src="js/shell.js"></script>
<script src="lib/angular/angular.min.js"></script>
<script src="lib/angular-route/angular-route.min.js"></script>
<script src="lib/moment/min/moment.min.js"></script>
<script src="lib/angular-moment/angular-moment.js"></script>
<script src="lib/qrcode-generator/js/qrcode.js"></script>
<script src="lib/angular-qrcode/qrcode.js"></script>
<script src="lib/ng-idle/angular-idle.min.js"></script>
<script src="lib/angular-foundation/mm-foundation.min.js"></script>
<script src="lib/angular-foundation/mm-foundation-tpls.min.js"></script>
<script src="lib/peer.js"></script> <!-- TODO Change this on PeerJS version 0.3.9 -->
<script src="lib/bitcore.js"></script>
<script src="lib/crypto-js/rollups/sha256.js"></script>
<script src="lib/crypto-js/rollups/pbkdf2.js"></script>
<script src="lib/crypto-js/rollups/aes.js"></script>
<script src="lib/file-saver/FileSaver.js"></script>
<script src="lib/socket.io-client/socket.io.js"></script>
<script src="lib/sjcl.js"></script>
<script src="lib/ios-imagefile-megapixel/megapix-image.js"></script>
<script src="lib/qrcode-decoder-js/lib/qrcode-decoder.min.js"></script>
<script src="lib/vendors.js"></script>
<script src="lib/zeroclipboard/dist/ZeroClipboard.min.js"></script>
<script src="lib/angularjs-all.js"></script>
<script src="config.js"></script>
<script src="js/copayBundle.js"></script>
<script src="js/app.js"></script>
<script src="js/routes.js"></script>
<script src="js/directives.js"></script>
<script src="js/filters.js"></script>
<script src="js/services/socket.js"></script>
<script src="js/services/video.js"></script>
<script src="js/services/walletFactory.js"></script>
<script src="js/services/controllerUtils.js"></script>
<script src="js/services/passphrase.js"></script>
<script src="js/services/notifications.js"></script>
<script src="js/services/backupService.js"></script>
<script src="js/services/isMobile.js"></script>
<script src="js/services/uriHandler.js"></script>
<script src="js/controllers/home.js"></script>
<script src="js/controllers/open.js"></script>
<script src="js/controllers/join.js"></script>
<script src="js/controllers/copayers.js"></script>
<script src="js/controllers/video.js"></script>
<script src="js/controllers/sidebar.js"></script>
<script src="js/controllers/addresses.js"></script>
<script src="js/controllers/transactions.js"></script>
<script src="js/controllers/send.js"></script>
<script src="js/controllers/backup.js"></script>
<script src="js/controllers/setup.js"></script>
<script src="js/controllers/import.js"></script>
<script src="js/controllers/settings.js"></script>
<script src="js/controllers/uriPayment.js"></script>
<script src="js/controllers/version.js"></script>
<script src="js/controllers/warning.js"></script>
<script src="js/copayMain.js"></script>
<!-- PLACEHOLDER: CORDOVA SRIPT -->
<script src="js/mobile.js"></script>

View File

@ -48,6 +48,9 @@
"express": "4.0.0",
"github-releases": "0.2.0",
"grunt-browserify": "2.0.8",
"grunt-contrib-concat": "0.5.0",
"grunt-contrib-cssmin": "0.10.0",
"grunt-contrib-uglify": "^0.5.1",
"grunt-contrib-watch": "0.5.3",
"grunt-markdown": "0.5.0",
"browser-pack": "2.0.1",