1.1.4 • Published 6 years ago

grunt-replace-configvalues v1.1.4

Weekly downloads
3
License
MIT
Repository
github
Last release
6 years ago

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

1.1.4

6 years ago

1.1.3

6 years ago

1.1.2

7 years ago

1.1.1

7 years ago

1.1.0

7 years ago

1.0.2

7 years ago

1.0.1

8 years ago

1.0.0

8 years ago

0.0.1

10 years ago