JavaScript to CoffeeScript compiler

npm install js2coffee
677 downloads in the last day
3 003 downloads in the last week
13 596 downloads in the last month


Check this project's build status on TravisCI View this project's NPM page

A JavaScript to CoffeeScript compiler


npm install -g js2coffee

CLI Usage

js2coffee input_file.js
js2coffee input_file.js > output.coffee
cat input.js | js2coffee

You can pass some options:

--version           # Show js2coffee version
--verbose           # Be verbose
--no_comments       # Do not translate comments
--show_src_lineno   # Show src lineno's as comments
--single_quotes     # Use single quoted string literals - default double quoted
--help              # If you need help
--indent            # Specify the indent character(s) - default 2 spaces

API Usage

build(content, option)

  • content String - javascript source code
  • option Object - option object
    • no_comments Boolean - ignore comments, if true
    • show_src_lineno Boolean - show source line numbers in each line as comment, if true
    • indent String - specify indent
    • single_quotes Boolean - use single quoted string literals instead of double quoted
js2coffee = require('js2coffee');
coffeeContent = js2coffee.build(jstContent, {show_src_lineno: true, indent: "    "});

Known issues

Js2coffee has some kown issues

  • switch statements have always implict returns at the end of a function - #250
  • some switch statements fail - switch
  • CoffeeScript keywords become converted with an trailing underscore - keywords
  • Narcissus fails to parse JavaScript keywords as object properties - narcissus
  • some IIFE syntaxes fail - #190
  • Empty function declrations within if statements fail - #162

Try out in the browser

You can swtich the mode (JS -> Coffee and Coffee -> JS) at the top in the center.


Discover how you can contribute by heading on over to the CONTRIBUTING.md file


You can discover the history inside the HISTORY.md file


Licensed under the incredibly permissive MIT License
Copyright © 2011+ Rico Sta. Cruz hi@ricostacruz.com


Made possible thanks to the hard work of Js2coffee's dependency projects:

And of course:

npm loves you