coffeescriptgruntjsgrunt-contrib-coffee

Creating grunt tasks for compiling coffeescript files recursively inside directories and subdirectories


I am trying to create a grunt task to compile coffeescript code spread across multiple files to .js files of the same name. I have the grunt coffeescript plugin and I am looking to use the "glob_to_multiple" spec that is given on this page:

https://www.npmjs.org/package/grunt-contrib-coffee.

 glob_to_multiple: {
    expand: true,
    flatten: true,
    cwd: 'path/to',
    src: ['*.coffee'],
    dest: 'path/to/dest/',
    ext: '.js'
  },

However, this grunt task does not compile .coffee files to .js files of corresponding names - for all .coffee files in a directory and its sub directories. I've been tweaking this config, for a while but I can't get it to do this. Please help.


Solution

  • The pattern *.coffee will only match files that end with .coffee in the cwd folder. The pattern **/*.coffee will match all files that end with .coffee recursively in all sub folders of cwd and the cwd itself.

    Try the following config:

    glob_to_multiple: {
      expand: true,
      flatten: true,
      cwd: 'path/to',
      src: ['**/*.coffee'],
      dest: 'path/to/dest/',
      ext: '.js'
    },
    

    Also remove flatten: true if you want it to recreate the folder structure in path/to/dest/ instead of compiling all files to the single folder.