Convert JavaScript to coffee-script.


Convert JavaScript to CoffeeScript, with Grunt.js

If you haven't used grunt before, be sure to check out the Getting Started guide.

From the same directory as your project's Gruntfile and package.json, install this plugin with the following command:

npm install grunt-js2coffee --save-dev

Once that's done, add this line to your project's Gruntfile:


If the plugin has been installed correctly, running grunt --help at the command line should list the newly-installed plugin's task or tasks. In addition, the plugin should be listed in package.json as a devDependency, which ensures that it will be installed whenever the npm install command is run.

Type: Boolean Default: False (comments are translated by default)

Ignore (do not translate) comments, if true.

Type: Boolean Default: False

Show source line numbers in each line as comment, if true.

Type: String Default: (two spaces)

Specify indent.

Type: Boolean Default: " (double quoted)

Use single quoted string literals instead of double quoted.

In your project's Gruntfile, add a section named js2coffee to the data object passed into grunt.initConfig().

  js2coffee: {
    options: {
      // Task-level options go here 
    // Example: this target compiles a single file from JavaScript to CofeeScript 
    single: {
      src: 'tmp/mout/src/string/contains.js',
      dest: 'tmp/single/'
    // Example: this target compiles a directory of JavaScript files to 
    // individual CofeeScript files, retaining the same directory structure 
    // in the destination folder 
    each: {
      options: {},
      files: [
          expand: true,
          cwd: 'tmp/mout/src',
          src: ['**/*.js'],
          dest: 'tmp/coffee/',
          ext: '.coffee'

In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using grunt.

Jon Schlinkert

Thank you to @rstacruz and the contributors of js2coffee for all of the hard work that made this plugin possible.

Copyright (c) 2013 Jon Schlinkert, contributors. Licensed under the MIT license.