Awesome
sbt-purescript
sbt-purescript is an SBT plugin that compiles PureScript files to Javascript. It uses and follows the conventions of sbt-web.
Usage
To use a stable release, add the following to the project/plugins.sbt
of your project:
addSbtPlugin("net.eamelink.sbt" % "sbt-purescript" % "0.4.0")
To use the latest from Github, add the following to the project/plugins.sbt
of your project:
lazy val root = project.in(file(".")).dependsOn(sbtPurescript)
lazy val sbtPurescript = uri("git://github.com/eamelink/sbt-purescript")
Then:
- Put your PureScript files (with extension
purs
intosrc/main/assets
) - Run the
purescript
task - Observe the glorious result in
target/web/public/main/js
Or in a Play Framework project:
- Put your PureScript files (with extension
purs
intoapp/assets
) - Run Play
- Observe the JS file on
http://localhost:9000/main.js
There is also a psci
command that will run the purescript interpreter, with your sources loaded.
Using bower
Many purescript packages are distributed with bower. If you want to use bower to manage dependencies, you can just work with a regular bower.json
file. To let the purescript
task find the dependencies, add the following to build.sbt
:
// Include only the `src` directories from the bower packages
(sourceDirectories in purescript in Assets) ++= (baseDirectory.value / "bower_components" * AllPassFilter / "src").get
Options
There's a pscOptions
key, with a sequence of parameters given to the psc
command. You need to scope with within the Assets
config. For example:
import PureScriptKeys._
pscOptions in Assets := Seq("--module", "Main", "--main")
Hacking on the plugin
Run scripted
to run the plugin test suite (which is barely existent at this point...)
License
MIT License, see LICENSE
file.