ripple-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Roman Shtylman <>
Subject ripple-emulator build refactor
Date Sun, 26 Jan 2014 22:37:25 GMT
I originally emailed Brent and he advised me to mail the dev list with my comments and repo.

While working on a cordova app, I found ripple an indispensable tool. However, I found that
the build system and initial setup was more cumbersome than I would like. If I wanted to fix
something in the client code I would need to rebuild and re-run the server. The build system
also made it harder for someone to install my fork directly since it seems that built files
are published to npm and a repo clone cannot be used as is.

This led me to refactor the emulator server to build the client files on demand (as well as
the dialogs, overlays, panels). All of this is accomplished via middleware in the express

Here is an overview of some of the changes.

- The special “ripple” function in the client files was replaced with a regular require.
- Other express server cleanups
- removed all the build files
- removed some file that seemed stale to me
- update README with simplified install directions
- simplified the xhr proxy via http-proxy module
- simplify injecting the “cordova.js” bootstrapping before serving the “cordova.js”

You can actually try this version out by cloning it, running "npm install” and then just

Or you can actually install directory via npm:

“npm install -g courseoff/ripple-emulator”

The above works because no build is required as all of the items are injected inflight.

- update remaining files (I was only interested in making cordova work).
- tests

I personally only care about cordova, but if there is interest in accepting this work and
having me cleanup some other things (I probably broke some features I don’t use). I am happy
to continue the fixes.

Happy to answer any questions about these changes. Please cc me in responses as I am not subscribed
to the list yet.

  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message