This is a Giter8 template showing how you can integrate a Play project with a Scala.js project.
$ sbt new vmunier/play-scalajs.g8 --name=play-scalajs --organization=com.example
$ cd play-scalajs
$ sbt
> run
$ open http://localhost:9000The application contains three directories:
serverPlay application (server side)clientScala.js application (client side)sharedScala code that you want to share between the server and the client
The application uses the sbt-web-scalajs sbt plugin and the scalajs-scripts library.
- Run your application like a regular Play app
compiletriggers the Scala.js fastOptJS commandruntriggers the Scala.js fastOptJS command on page refresh~compile,~run, continuous compilation is also available
- Compilation errors from the Scala.js projects are also displayed in the browser
- Production archives (e.g. using
stage,dist) contain the optimised javascript - Source maps
- Open your browser dev tool to set breakpoints or to see the guilty line of code when an exception is thrown
- Source Maps is disabled in production by default to prevent your users from seeing the source files. But it can easily be enabled in production too by setting
emitSourceMaps in fullOptJS := truein the Scala.js projects.
The root project aggregates all the other projects by default.
Use this root project, called play-scalajs by default, to clean all the projects at once.
$ sbt
> play-scalajs/cleanIn IntelliJ, open Project wizard, select Import Project, choose the root folder and click OK.
Select Import project from external model option, choose SBT project and click Next. Select additional import options and click Finish.
Make sure you use the IntelliJ Scala Plugin v2017.2.7 or higher. There are known issues with prior versions of the plugin.
