Giter8 template to get started with Play and Scala.js.
This is a Giter8 template showing how you can integrate a Play project with a Scala.js project.
$ sbt new vmunier/play-scalajs.g8 $ cd play-scalajs $ sbt sbt:root> project server [server] run $ open http://localhost:9000
The 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.
compiletriggers the Scala.js
runtriggers the Scala.js
fastLinkJStask on page refresh
~run, continuous compilation is also available
FullOptStagewhen packaging your application for
fullLinkJSto be executed instead of
sbt 'set Global / scalaJSStage := FullOptStage' Universal/packageBin
fullLinkJSby default. If you wish to disable Source Maps in
fullLinkJS, then add
Compile / fullLinkJS / scalaJSLinkerConfig ~= (_.withSourceMap(false))in the Scala.js projects.
rootproject aggregates all the other projects. Use this root project to clean all the projects at once.
shell $ sbt sbt:root> clean
Add the following line to
build.sbtif you wish to load the server project at sbt startup:
scala Global / onLoad := (Global / onLoad).value.andThen(state => "project server" :: state)
cleanwill only delete the server's generated files (in the
root/cleanto delete the generated files for all the projects.
In IntelliJ, open Project wizard, select
Import Project, choose the root folder and click
Import project from external modeloption, choose
SBT projectand 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.
addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "5.2.4")to
server's settings in
// Compile the project before generating Eclipse files, so that generated .scala or .class files for Twirl templates are present EclipseKeys.preTasks := Seq(Compile / compile)
$ sbt "eclipse with-source=true"
File/Import/General/Existing project..., choose the root folder. Uncheck the third checkbox to only import client, server and shared/.jvm, click