I'm looking for simplest possible way to automatically recompile coffee scripts into JS.
Reading documentation but still having troubles to get exactly what I want.
I need it to watch folder src/
for any *.coffee
files modifications and compile them into concatenated javascript file into lib/something.js
.
Somehow can't combine watching, compiling and concatenating together. :/
The coffee script documentation provides an example for this:
Watch a file for changes, and recompile it every time the file is saved:
If you have a particular script you want to execute, you could use the linux command dnotify: http://linux.die.net/man/1/dnotify
Edit: I had some problems with the --execute part of dnotify - might be a bug, but this is what I got working:
That executed the compile command each time a file was modified.
If you append the command with an ampersand, like this:
it will be started in a separate process. To get the process ID, you can use this:
And then, you can kill the process by using something like this:
But if that's your objective (to kill by process name), you can do it in a simpler way by using:
I have found the command-line coffeescript compiler to be poorly suited for complex project structures.
If you and your build process are as needy as I am, check out Grunt - http://gruntjs.com/
It allows for highly complex build processes - for example, you might
Tasks can be strung together, and watched files/folders are highly customizable as well.
The short answer to your question is that the
coffee
utility wasn't designed for this; combining file-watching and concatenation is actually pretty complex. Expect more sophisticated build tools for CoffeeScript in the near future; until then, you might want to do your project's builds by writing a Cakefile or Ruby Watchr script. Then you can also throw in minification, documentation-generation, and whatever else you need for your particular project (not to mention guaranteeing a particular concatenation order).Try jitter
https://github.com/TrevorBurnham/jitter
It watches a directory of .coffee files, and when it detects that a file has changed it automatically recompiles it to .js
I've been trying it out with a project using coffescript and sencha touch, it seems to work pretty well. Doesn't take care of the concatenation problem, but it's really simple to use for someone who just needs auto-compilation.
This helped me (
-o
output directory,-j
join to project.js,-cw
compile and watch coffeescript directory in full depth):Being one level above /src, this will work for all .coffee files found no matter the depth.