hdgarrood / herringbone

Preprocess and serve your web assets.
12 stars 0 forks source link

investigate integration with shake #24

Open thkoch2001 opened 10 years ago

thkoch2001 commented 10 years ago

shake is a build tool written in Haskell. As indicated on reddit, people (like me) are interested in a build time alternative to grunt or gulp. Shake already seems to be a great build system but it lacks all the tools to do sass/less/altjs compilation, minification, sourcemaps, lintint, etc

hdgarrood commented 10 years ago

So I hadn't heard of Shake when I made this, but I'm now starting to think that it would be more sensible for this library to be built on top of Shake rather than integrating with it, and that depending on Shake could allow us to remove a lot of (not particularly great) code from this library.

I still need to learn more about Shake though. Have you used it for web assets before? If so, can I see an example Shake script? Is it easy to tell Shake to watch for changes?

hdgarrood commented 10 years ago

The amount of code in Herringbone that deals with the things you mention is extremely small, which is why I say this.

thkoch2001 commented 10 years ago

No, I've not used shake yet. I'm just starting to learn Haskell. Shake has nothing build in to watch for changes, but on each invocation it only does a minimal build of only the changed files. So the author claims that watching isn't necessary. He recommends to use whatever file notification your OS provides to do a full rebuild. See my question here: https://groups.google.com/forum/?fromgroups#!topic/shake-build-system/ceZYVPOxanI

hdgarrood commented 10 years ago

Ok, sounds good. I probably won't get a chance to look at this for a while, unfortunately.

joefiorini commented 9 years ago

I've been looking at Shake the past couple days. I haven't had a chance to try it yet, hoping to soon. I'm throwing in my 2¢ as the author of half-pipe, an asset pipeline replacement for Rails apps using Grunt. I've come to dislike the use of an interpreted language for a build system as I don't want to rely on a development environment being setup so I can build.

Shake looks attractive because it's compiled down to an executable, so binary distribution via package managers should be feasible (right?) If anyone starts looking into this, it might be worth taking a look at how ember-cli integrates broccoli to build assets. They've done a very nice job hiding the details. Unfortunately, they have a lot to do to achieve cross-platform support, broccoli still isn't quite performant enough for large apps & they're still depending on an interpreted language to do their build.

If I do indeed get around to trying out Shake for web assets, I'll post back here with the results. If not, maybe my inspiration will help inspire someone else.