Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Play 2.3 requireJs optimization and shim for multiple modules

This is my current setup for Play 2.2.x requireJS. Will it continue to work after 2.3? I can't find requireJs or requireJsShim anywhere in the 2.3 documentation.

  requireJs ++= Seq("mainAccount.js", "mainOrg.js", "mainPublic.js"), // This tells Play to optimize this file and its dependencies
  requireJsShim += "build.js", // This tells Play to read the RequireJS "shim" configuration from build.js
  requireJsFolder := "js"
like image 778
angelokh Avatar asked Mar 20 '23 05:03

angelokh


1 Answers

  1. Instead of requireJs use:

    RjsKeys.modules := Seq(
        WebJs.JS.Object("name" -> "mainAccount"),
        WebJs.JS.Object("name" -> "mainOrg"),
        WebJs.JS.Object("name" -> "mainPublic")
    )
    
  2. Instead of requireJsShim use RjsKeys.mainConfig := "build"

  3. I think you can just omit requireJsFolder as baseUrl is considered to be either js or javascripts by default. See here: https://github.com/sbt/sbt-rjs/blob/master/src/main/scala/com/typesafe/sbt/rjs/SbtRjs.scala#L104 If you want to change to something else, then use RjsKeys.baseUrl := "your-js-dir-name"

Also there is a github project using RequireJS that was migrated to Play 2.3, may be useful as well: https://github.com/mariussoutier/play-angular-require-seed

For more details check sbt-rjs plugin docs: https://github.com/sbt/sbt-rjs

like image 131
lagivan Avatar answered May 07 '23 07:05

lagivan