Meta-Languages for SilverStripe
This module allows the direct inclusion of uncompiled meta-language dependencies such as CoffeeScript, LESS, and SASS into your project and compiles them at runtime.
Just require the dependency in your controller, and use it just like Requirements.
Limiting the compiling
By default, files are only compiled in "test" and "dev" environments. To limit compiling to specific environments:
<?php MetaLanguages::set_compile_environments(array( 'dev', 'localhost:8888', 'staging.example.com' ));
Specifying target directories
Requirement_coffeescript: compiled_path: mysite/coffee Requirement_scss: compiled_path: mysite/sass
Specifying a path to the "coffee" executable
The /usr/local/bin path is forced into the shell environment by default, but if you need more control over it:
Requirement_coffeescript: coffee_exec: /my/path/to/coffee
Change the modification time tolerance that triggers a compile.
Compiling doesn't happen unless the "last edited" time difference between the raw and uncompiled file is greater than a specific number of seconds (defaults to 5)
MetaLanguages: modification_tolerance: 10;
Compiling SASS is exceedingly difficult from within PHP because it is a Ruby gem, so environmental issues are numerous. This module uses a thirdparty PHP compiler for SASS, which is known to have some bugs.