v1.2.0.
Highlights
- Upgrade to Scala.js
v1.5.1
- Use
fastLinkJS
/fullLinkJS
instead offastOptJS
/fullOptS
- Add support for Scala 3
- Drop support for SBT
v0.13.x
and Scala.jsv0.6.x
- Remove the sbt-jsdependencies plugin
- Publish to Sonatype, using sbt-ci-release. Stop publishing to Bintray. JFrog are sunsetting Bintray https://jfrog.com/blog/into-the-sunset-bintray-jcenter-gocenter-and-chartcenter/
Breaking changes
There are two breaking changes when upgrading from sbt-web-scalajs v1.1.0
to v1.2.0
:
-
Use
fastLinkJS
/fullLinkJS
instead offastOptJS
/fullOptS
sbt-web-scalajs is now using
fastLinkJS
/fullLinkJS
instead offastOptJS
/fullOptS
.The new Scala.js'
fastLinkJS
task writes the JavaScript code to a directory. With the default options, it writes a single filemain.js
. Let's say we have aclient
Scala.js project,fastLinkJS
writes a single filemain.js
to aclient-fastopt
directory (client-fastopt/main.js
). Previous versions of sbt-web-scalajs usedfastOptJS
, which wrote aclient-fastopt.js
file with no directories.This means we need to update the HTTP path when getting the JavaScript files from the server. Where previously we requested
GET /assets/client-fastopt.js
, we now have to requestGET /assets/client-fastopt/main.js
.Have a look at the following git diff, showing the required changes when upgrading from sbt-web-scalajs
v1.1.0
tov1.2.0
, for:- Play: https://github.com/vmunier/play-scalajs.g8/pull/120/files
- Akka HTTP: https://github.com/vmunier/akka-http-scalajs.g8/pull/70/files
In the above diffs, we removed the
scalajs-scripts
dependency and added afindScript.scala.html
template instead.
findScript("client-opt/main.js", "client-fastopt/main.js")
finds the first existing script and creates a<script>
tag. -
Remove the
sbt-jsdependencies
pluginThe sbt-jsdependencies plugin has been removed from sbt-web-scalajs. Users can still add the plugin as part of their build if needed, and override the
jsMappings
task:Compile / fastLinkJS / jsMappings += toPathMapping((Compile / packageJSDependencies).value), Compile / fullLinkJS / jsMappings += toPathMapping((Compile / packageMinifiedJSDependencies).value), ... def toPathMapping(f: File): (File, String) = f -> f.getName
Issues
- Fixes #105