From 309ca28f67c68b377418d3ab73211cd7a735b2cf Mon Sep 17 00:00:00 2001 From: Nicklas Gummesson Date: Thu, 20 Nov 2014 17:31:21 +0100 Subject: [PATCH] Setup browserify for grunt for new editor --- config/application.rb | 2 +- lib/build/Gruntfile.js | 4 ++-- lib/build/package.json | 7 ++++++- lib/build/tasks/browserify.js | 24 ++++++++++++++++++++++++ lib/build/tasks/watch.js | 12 +++++++++--- 5 files changed, 42 insertions(+), 7 deletions(-) create mode 100644 lib/build/tasks/browserify.js diff --git a/config/application.rb b/config/application.rb index a0df920449..b796f3666e 100644 --- a/config/application.rb +++ b/config/application.rb @@ -57,7 +57,7 @@ module CartoDB config.assets.enabled = false # Default setting is [/\w+\.(?!js|css).+/, /application.(css|js)$/] - config.assets.precompile = %w( app.js application.js cdb.js common_data.js dashboard.js keys.js login.js models.js organization.js modernizr.js statsc.js table.js public_dashboard.js public_table.js map_public.js templates.js templates_mustache.js tipsy.js common.js jquery.tipsy.js specs.js) + config.assets.precompile = %w( new-dashboard.js app.js application.js cdb.js common_data.js dashboard.js keys.js login.js models.js organization.js modernizr.js statsc.js table.js public_dashboard.js public_table.js map_public.js templates.js templates_mustache.js tipsy.js common.js jquery.tipsy.js specs.js) config.assets.precompile += %w( cdb.css cdb/themes/css/cartodb.css cdb/themes/css/cartodb.ie.css common.css dashboard.css db.css cartodb.css fonts_ie.css front.css keys.css leaflet.css map.css map/leaflet.ie.css organization.css pages.css plugins/tipsy.css public.css password_protected.css public_dashboard.css public_table.css public_map.css public_ie.css specs.css table.css tables.css) config.assets.precompile += %w( *.jpg *.ico *.gif *.png *.eot *.otf *.svg *.woff *.ttf *.swf ) diff --git a/lib/build/Gruntfile.js b/lib/build/Gruntfile.js index c23173a20c..5a1ab2718f 100644 --- a/lib/build/Gruntfile.js +++ b/lib/build/Gruntfile.js @@ -54,9 +54,9 @@ s3: require('./tasks/s3.js').task(), - uglify: require('./tasks/uglify.js').task() - + uglify: require('./tasks/uglify.js').task(), + browserify: require('./tasks/browserify.js').task() }); // Load Grunt tasks diff --git a/lib/build/package.json b/lib/build/package.json index c8ebcb5f06..6585ee3ed0 100644 --- a/lib/build/package.json +++ b/lib/build/package.json @@ -38,7 +38,12 @@ "grunt-aws": "~0.3.0", "grunt-contrib-watch": "~0.6.0", "shelljs": "~0.2.6", - "grunt-cli": "~0.1.13" + "grunt-cli": "~0.1.13", + "remapify": "^1.3.0", + "browserify": "^6.3.2", + "browserify-shim": "^3.8.0", + "grunt-browserify": "^3.2.0", + "moment": "^2.8.4" }, "files": [ "dist" diff --git a/lib/build/tasks/browserify.js b/lib/build/tasks/browserify.js new file mode 100644 index 0000000000..653936c080 --- /dev/null +++ b/lib/build/tasks/browserify.js @@ -0,0 +1,24 @@ +// Using proposed solution for alias mappings from official docs, see https://github.com/jmreidy/grunt-browserify#alias +var remapify = require('remapify'); + +module.exports = { + task: function(grunt, config) { + return { + options: { + preBundleCB: function (b) { + b.plugin(remapify, [ + { + cwd: './src', + src: './**/*.js', + expose: '' + } + ]); + } + }, + dashboard: { + src: 'src/dashboard.js', + dest: '<%= assets_dir %>/javascripts/new-dashboard.js' + } + }; + } +}; diff --git a/lib/build/tasks/watch.js b/lib/build/tasks/watch.js index 4fd7e9333f..28c5375ee0 100644 --- a/lib/build/tasks/watch.js +++ b/lib/build/tasks/watch.js @@ -19,7 +19,13 @@ exports.task = function() { tasks: ['cdb', 'concat:js', 'jst'], options: { spawn: false - }, + } + }, + browserify: { + files: [ + 'src/**/*.js' + ], + tasks: ['browserify'] }, css: { files: [ @@ -29,7 +35,7 @@ exports.task = function() { tasks: ['css'], options: { spawn: false - }, + } }, livereload: { files: [ @@ -38,7 +44,7 @@ exports.task = function() { ], options: { livereload: true - }, + } }, }; };