Skip to content

Replace values in a config.js file by --conf:key.subkey=new_value

License

Notifications You must be signed in to change notification settings

aus-der-Technik/grunt-replace-configvalues

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

grunt-replace-configvalues

Replace values in a config.js or config.json file by grunt.

 **--conf:key.subkey=new_value**

Example:

grunt --conf:host.url=http://www.example.com \
      --conf:database.credentials.username=piere \
      --conf:database.credentials.password=quah4ies3Poo8
      

will replace the values in the config.js file:

   module.exports = {
      host: {
         url: 'http://localhost'
      },
      database: {
         credentials: {
            username: 'noname',
            password: 'secret'
         }
      }
   }

to:

   module.exports = {
      host: {
         url: 'http://www.example.com'
      },
      database: {
         credentials: {
            username: 'piere',
            password: 'quah4ies3Poo8'
         }
      }
   }

Why

This grunt task is build because configuration parameters are dynamic and will be set while ci-servers are build the projet. I always use local dev parameters inside the porojet and jenkis replace them with the correkt values for the stage and production cluster servers.

Hope it helps you too to manage your project deployments from Jenkins or any other ci-server.

How

Install grunt-replace-configvalues:

   npm install grunt-replace-configvalues --save-dev

Than inside the Gruntfile.js:

   // load the task
   grunt.loadNpmTasks('grunt-string-replace');

   // configure the task
   grunt.initConfig({
       	configvalues: {
		options: {
		   src: './config.js'
		}
	}	
   });  

   // and than run the task
   grunt.registerTask('default', ['configvalues']);

Multiple files are supported since Version 1.0.0:

   // load the task
   grunt.loadNpmTasks('grunt-string-replace');

   // configure the task
   grunt.initConfig({
       	configvalues: {
		options: {
		   src: ['./config.js', './hosts.js']
		}
	}	
   });  

   // and than run the task
   grunt.registerTask('default', ['configvalues']);

You can replace json files in version 1.0.0, too:

   // load the task
   grunt.loadNpmTasks('grunt-string-replace');

   // configure the task
   grunt.initConfig({
       	configvalues: {
		options: {
		   src: ['./config.js', './hosts.json']
		}
	}	
   });  

   // and than run the task
   grunt.registerTask('default', ['configvalues']);

If you have to set the file from the command line, you can do now with Version 1.0.0:

grunt --conf:host=127.0.0.1 --conffiles=hosts.js

Or even with a list of files:

grunt --conf:host=127.0.0.1 --conffiles=hosts.js,config.json

Arrays

You can, replace a value with an array:

grunt --conf:hosts=["192.0.3.12", "192.0.3.13"]

Limitations

  • At this time, there is no way to set the config parameter inside of the Gruntfile.js. Just say --conf:key=value at an argument of the grunt command line.

Donate

If you like this module and want to say thanks, than please spend a tiny fraction of a BitCoin to: 1FaKEmpUz7S1g4v5qgmDWwQDzVYGBM6MLw

About

Replace values in a config.js file by --conf:key.subkey=new_value

Resources

License

Stars

Watchers

Forks

Packages

No packages published