Can I write npm package in CoffeeScript?

You can write NPM modules in coffeescript, but in order for them to be usable by JS users they must be compiled to JS before you publish on NPM.

package.json makes this easy with their prepublish script hook which runs the specified script before you publish. Heres an example of a prepublish NPM hook in zombie.js

https://github.com/assaf/zombie/blob/master/package.json#L16


I'm going to suggest that you write your package in coffeescript, but only publish it in javascript. I do it like this:

  • coffeescript code goes in src
  • code is compiled to lib
  • src is committed to my git repo, lib is in my .gitignore
  • lib is published to npm, src is in my .npmignore
  • the coffee-script package is in my devDependencies

You can take a look at a simple package of mine, refix, for inspiration:

  • https://github.com/linus/refix
  • npm install refix