Closed carlosedp closed 1 year ago
Since Mill 0.10.11 ScalaJSModule
s Tests
inherits more settings from its parent.
So before mill frontend.test.moduleKind
would return NoModule
but now it returns ESModule
.
The fix here would be to manually change the test
's moduleKind
to ModuleKind.NoModule
and also set the ModuleSplitStyle to the default. Not sure which one is the most appropriate.
For example by:
def moduleSplitStyle = T(ModuleSplitStyle.FewestModules)
def moduleKind = T(ModuleKind.NoModule)
Another possible solution would be to use:
def moduleKind = T(ModuleKind.CommonJSModule)
def jsEnvConfig = T(JsEnvConfig.ExoegoJsDomNodeJs())
but I couldn't make it work yet.
Thanks, I'll go with the overriding the options in the test object like the first option.
object frontend extends ScalaJSModule with Common {
def scalaVersion = versions.scala3
def scalaJSVersion = versions.scalajs
def ivyDeps = super.ivyDeps() ++ Agg(
ivy"org.scala-js::scalajs-dom::${versions.scalajsdom}",
ivy"com.softwaremill.sttp.client3::core::${versions.sttp}",
)
def scalaJSUseMainModuleInitializer = true
def moduleSplitStyle = T(ModuleSplitStyle.SmallModulesFor(List("com.carlosedp.zioscalajs.frontend")))
def moduleKind = T(ModuleKind.ESModule)
object test extends Tests with Common with TestModule.ScalaTest {
// Test dependencies
def ivyDeps = Agg(
ivy"org.scalatest::scalatest::${versions.scalatest}",
)
def moduleKind = T(ModuleKind.NoModule)
def moduleSplitStyle = T(ModuleSplitStyle.FewestModules)
def jsEnvConfig = T(JsEnvConfig.JsDom())
}
}
I think, we should add a note to the changelog. There is a chance that other users stumble over the same issue. (In the hope that users read changelogs.)
I have a project using Scalajs and tests fail when bumping to mill from 0.10.10 to 0.10.11:
https://github.com/carlosedp/zio-scalajs-stack/blob/feb20bbfdbc8b8ef754071ea48b00893b7cb1f6c/build.sc#L152