Nupital Pomp Mesmerises

    gake

    0.1.2 • Public • Published

    NPM version

    Gake

    Gake is a simple grunt module which allows you to keep your grunt tasks/config separated into different files, much like rake.

    Installation

    $ npm install gake --save
    

    Motivation

    This library started out when I needed to create a generator to generate rake like tasks into the SailsJS project. It seems that, for some reason having a 400loc grunt file is a common practice in the NodeJS community. Which makes maintaining tasks very needlessly hard and messy.

    Usage

    add this into your grunt config:

    gake: {
          configDir: './grunt/config',
          tasksDir: './grunt/tasks'
        }
    

    and register this npm task after you did grunt.initConfig

    grunt.loadNpmTasks('gake');
    

    Now you can use two helper grunt tasks to generate your tasks/configs

    grunt gake:task --name="my:custom:task"
    

    this will create the my/custom/task.js file under the tasksDir folder, and a my/custom/task.js under the configDir folder, where you can put your tasks config files.

    you can also run

    grunt gake:config --name="my.custom.config"
    

    which will generate only the config file.

    Convention

    • Configuration loading

      This will load all the config from the configDir into the grunt.config object, when the path is the namespace, for example, the following path:

      ./grunt/config/my/task/config.js
      

      will create the following config:

      grunt.config.my.task.config
      
    • Tasks loading

      This loads all the tasks from the tasksDir by requiring all files in the tasksDir recursively.

    Examples

    You can take a look at the test folder to see example directory structure and usage.

    TODO

    • Add real tests
    • Add option to generate config/tasks using coffee-script

    Keywords

    none

    Install

    npm i gake

    DownloadsWeekly Downloads

    58

    Version

    0.1.2

    License

    BSD-2-Clause

    Last publish

    Collaborators

    • bluehotdog