yesod-static supports generators which run at compile time which create static resources to embed directly into the executable. This package leverages these generators to provide automatic management of AngularJs code. During development individual files served and reloaded on every request. When compiling for production, the files are minimized, compressed, and then embedded into the executable.
There are several moving parts to integrating AngularJs into Yesod using this module
- yesod-static-angular (this module) - embeds Angular code and directive templates into the static subsite
- karma-ng-hamlet2js-preprocessor - a karma plugin to insert Hamlet directive templates into the AngularJs template cache.
- webdriver - end to end web testing tool
- webdriver-angular - some Angular specific commands for webdriver. This package contains all the functionality of protractor so protractor does not need to be used.
- hspec-webdriver - some integration code to easily write hspec examples which are webdriver tests.
The example directory in the source code contains an example application that shows all of the above packages in action. Also, I have two blog posts describing the example and its tests.