Configure Restangular.baseUrl using Gruntjs
It's possible with the aid of Grunt preprocess which is useful for replacing (and other things) templates inside files.
First add this to your .js code:
/* Begin insertion of baseUrl by GruntJs *//* @ifdef baseUrl var baseUrl = /* @echo baseUrl */ // @echo ";" // @endif *//* @ifndef baseUrl var baseUrl = 'http://www.fallback.url'; // @endif *//* End of baseUrl insertion */
Then in your grunt file, after installing grunt preprocess (i.e npm install grunt-preprocess --save-dev
you add the following configuration:
preprocess: { options: { context: { } }, js: { src: 'public/js/services.js', dest: 'services.js' } },
obviously, you need to update the js file list accordingly to which ever files you use. important notice - if you are planning on updating the same file (and not to a new destination) you need to use the inline option
At last, in order to work with a command line config variable
, add the following custom task to your grunt file as well:
grunt.registerTask('baseUrl', function () { var target = grunt.option('rest.baseUrl') || undefined; grunt.log.ok('baseUrl is set to', target); grunt.config('preprocess.options.context.baseUrl', target); grunt.task.run('preprocess'); });
Finally, run the baseUrl task like so:
grunt baseUrl --rest.baseUrl='http://some.domain.net/public/whatever'
Notice I put in a fallback url so you can also run grunt baseUrl
and grunt will set your baseUrl to your defined one.