pharaun / alldice

Restful interface to a dice expression eval and generator.
Apache License 2.0
0 stars 1 forks source link

Build system #33

Closed pharaun closed 8 years ago

pharaun commented 9 years ago

Right now the build system is a bit of a mess.

Should be able to use: browserify to do stuff with npm and avoid bower. should be able to migrate off grunt to say hakyll/shake to stay with haskell for build system.

Basically what I want to be able to do at this point is:

1) Require cabal for installing+building up all of the haskell dependency 2) Use npm to handle all of the js/node/etc deps (like libsass, etc...) 3) Use something like shake to build up the entire site.

One of the main gotchas is probably going to be static deps like "libsass/sassc", so would be good if we can find a haskell wrapper (http://hackage.haskell.org/package/hsass)

pharaun commented 8 years ago

Simplified the process, so far its now down to grunt for build step + npm for some of the package deps, and elm and haskell....

I suspect shake maybe a good next step to try to untify the build step, main issue will be libsass/sassc dep which we get via npm and grunt that uses it, maybe code up some sort of interop via the npm's sass lib.

pharaun commented 8 years ago

I was able to exterminate the node/npm dependency.

Its now down to:

  1. Haskell
  2. Elm

And then I used alldice to listen to changes to the assets and trigger rebuild via FSNotify which seems to do the trick, its kinda over-specalized and it would be nice if we could get something more generic here instead of this pile of code for supporting that usecase.

But it works, and It also manages the elmReactor as well for elm interactive development so this suffices for now. Will revisit this when we get closer to production-ready. Might be able to get some inspiration from yesod on how to handle haskell rebuild/etc.