scalajs-bundler

Changelog

Version 0.20.0

2020 October 22

This release upgrades to Scala.js 1.3.0.

  • Drop support for Scala.js 0.6.x
  • Drop support for Scala.js 1.0.x through 1.2.x
  • Add support for Scala.js 1.3.x

Version 0.19.0

2020 October 16

This release drops support for sbt 0.13.x, and adds support for sbt-web-scalajs 1.1.0+.

Version 0.18.0

2020 May 16

This release adds support for scala.js 1.1.0

Version 0.17.0

2020 Feb 24

The main highlight of this release is better support for Scala.js 1.0.0+ out of the box. We still support Scala.js 0.6.31+ as well.

  • With Scala.js 1.x, dynamically load the appropriate scalajs-linker, removing the need for the libraryDependencies += "org.scala-js" %% "scalajs-linker" % scalaVersion workaround.
  • With Scala.js 1.x, do not internally link twice when using the LibraryOnly and LibraryAndApplication bundling modes, improving performance.
  • With Scala.js 1.x, better integrate with the jsEnv and jsEnvInput tasks of Scala.js when using requireJsDomEnv.

You can find the complete list of commits since the last release here.

Version 0.16.0

2019 Dec 09

The main highlight of this release is the support of Scala.js 1.0.0-RC1 instead of 1.0.0-M7. We still support Scala.js 0.6.x, but we require at least version 0.6.31.

  • Add support for Scala.js 1.0.0-RC1 (drop support for 1.0.0-M7)
  • Require Scala.js 0.6.31 or later in the 0.6.x branch
  • Require sbt 1.2.1 or later in the sbt 1.x branch (sbt 0.13.17+ is still supported)

You can find the complete list of commits since the last release here.

Version 0.15.0

2019 May 21

The main highlight of this release is the support of Scala.js 1.x. We still support Scala.js 0.6.x, but we require at least version 0.6.26.

New features:

  • #201: Introduce a jsSourceDirectories setting, which points to a list of directories containing files (.js, .json, etc.) that can be used by Scala.js projects.
  • #246: Support Scala.js 1.0.0-M7.

You can find the complete list of commits since the last release here.

Version 0.14.0

2018 Nov 5

This release modifies the npmUpdate task and splits the logic into two separate tasks; npmInstallDependencies and npmInstallJSResources. npmUpdate has a less obvious side effect that, not only does it run npm install, it would also copy all the JavaScript resources to the node_modules directory. This behaviour is fine except that it is not suitable for use in sourceGenerators and would cause a cycle in the tasks. npmInstallDependencies should be used in cases where you want to want to use a npm module from a sbt task.

This fixes the following bugs:

  • #258: Unable to use npmUpdate in sourceGenerators
  • #261: Support jsdom v12.x
  • #267: Support JDK9+

New features:

  • #264: Ability to set node flags
  • #266: Custom setting for DOM enabled JSEnv in test. (requiresDOM is deprecated)

And documentation fixes:

You can find the complete list of commits since the last release here.

Version 0.13.1

2018 Jul 13

This fixes the following bugs:

  • #224: Use project-level custom NPM registry

The following PRs are included in this release

  • #254: Npm/yarn args
  • #251: Fix typo
  • #249: Sync yarn.lock between baseDir and installDir

You can find the complete list of commits since the last release here.

Version 0.13.0

2018 Jun 5

This release contains an important revamp on the way webpack support works. Webpack produces a json stats output which describes in detail the results of processing your application. Thus, parsing stats we can learn exactly what files are produced rather than guessing.

Due to the very nature of parsing the output, and the wide variety of webpack configurations this process may not work in all cases. Please lets us know if you find any issues.

Note: Stats parsing has been tested mostly in Webpack 4. The results may vary with older versions.

Note: If your webpack produces any kind of std output, parsing stats will likely break.

This fixes the following bugs:

  • #192: Webpack failed to create application bundle
  • #111: Lots of warnings about source map URLs

The following PRs are included in this release

  • #247: Assets to sbt
  • #242: Better error display when the webpack call fails
  • #241: Use Public path from webpack stats
  • #240: Update concat-with-sourcemaps
  • #239: Bugfix parsing errors on the output
  • #238: Fix thread leak
  • #237: add function as a module example
  • #234: Read application asset name from stats

You can find the complete list of commits since the last release here.

Version 0.12.0

2018 March 27

  • #223: Webpack4 support

You can find the complete list of commits since the last release here.

Version 0.11.0

2018 March 15

  • #228: Implements npmUdpdate in a separate object;
  • #225: Add --mutex to yarn command;
  • #222: Make library example work in OSX;
  • #220: Support passing an extra list of arguments to webpack;
  • #218: Fix #136: Add more precise jsdom detection:
  • #216: Fix #200: current webpack devserver version does not accept watchOptions;
  • #215: Fix #99: Relax NPM dependency version conflict resolution;
  • #213: Fix #168: Update the snabbdom facade for Scala.js 1.0

You can find the complete list of commits since the last release here.

Version 0.10.0

2018 January 31

This release requires sbt 0.13.16+ and adds support for Scala.js 0.6.22.

  • #210: Bundler doesn't support version of jsdom more than 9;
  • #185: Correct webpackBundlingMode key in docs;
  • #212: Migrate to sbt-scalajs 0.6.22;

You can find the complete list of commits since the last release here.

Version 0.9.0

2017 October 12

When upgrading to this release, make sure to migrate your webpack configuration to webpack 3.X.

This version works with both sbt version 0.13 and 1.0. In order to support sbt 1.0, Scala.js has been upgraded to 0.6.19.

  • #175: Set webpack 3.X as default version;
  • #179: Cross publish for sbt 1.0;
  • #176: Run webpack-dev-server from the scalajs-bundler folder;
  • #177: Scope webpackBundlingMode per Scala.js stage (fastOptJS or fullOptJS);

You can find the complete list of commits since the last release here.

Version 0.8.0

2017 September 10

When upgrading to this release, make sure to check out the new webpackBundlingMode configuration value. The old enableReloadWorkflow key has been removed, in favor of BundlingMode.LibraryAndApplication().

  • #143: Document the compatible versions of npm;
  • #146: Document how to use global modules with jsdom in tests;
  • #149: Introduce webpackBundlingMode to finely control whether to bundle the output of Scala.js or not;
  • #153: Use the non interactive mode of Yarn;
  • #161: Set "private": true in generated package.json file to eliminate errors from npm;
  • #162: Differentiate between missing and unsupported Webpack versions;
  • #166: Move to Travis-CI;
  • #167: Upgrade tests that use uuid;
  • #171: Add scalaJSProjects resource directories to monitoredScalaJSDirectories;
  • #172: Use npm install command instead of npm update.

You can find the complete list of commits since the last release here.

Version 0.7.0

2017 July 4

When upgrading to this release, make sure to enable scalaJSUseMainModuleInitializer := true in your build if you have a main method.

  • #125: Copy webpackResources only if a custom webpack config file is used ;
  • #126: Ability to add custom package.json entries ;
  • #129: Generate a JavaScript array of webpack entries rather than a string ;
  • #140: Upgrade to Scala.js 0.6.18 ;
  • #141: Handle ImportWithGlobalFallback in reload workflow.

You can find the complete list of commits since the last release here.

Version 0.6.0

2017 April 26

  • #96: webpack-dev-server integration ;
  • #102: Make it possible to set the version of jsdom and webpack-dev-server to use ;
  • #106: Add a Community page ;
  • #108: Add gitter badge to the README ;
  • #121: Make the sbt task fail when webpack fails ;
  • #119: Add support for custom webpack config files in tests and in the reload workflow ;

You can find the complete list of commits since the last release here.

Version 0.5.0

2017 January 18

  • #57: Webpack 2.x support ;
  • #80: Upgrade to Scala.js 0.6.14 ;
  • #81: Disable the reload workflow by default ;
  • #94: Improve caching of tasks ;
  • #95: Fix support for spaces in paths ;

You can find the complete list of commits since the last release here.

Version 0.4.0

2016 December 15

  • #53: Fix cache invalidation when .js resources change ;
  • #54: Add support for importing assets from NPM packages ;
  • #56: Add Yarn support ;
  • #65: Use distinct target directories for npmUpdate in Compile and npmUpdate in Test ;
  • #69: Publish the API documentation ;
  • #70: Ensure that there is no duplicates in NPM dependencies ;
  • #71: Add a resolution mechanism for conflicting dependencies.

You can find the complete list of commits since the last release here.

Version 0.3.1

2016 December 2

  • #51: Support history API within jsdom.

You can find the complete list of commits since the last release here.

Version 0.3.0

2016 November 29

  • #32: Add a detailed documentation section on how to write a facade with @JSImport (see it here) ;
  • #33: Fix cache invalidation after custom webpack config file is changed ;
  • #35: Fix tests on Windows ;
  • #37: Throw an error if there is no main class ;
  • #39: Add support for jsdom in tests ;
  • #45: Forbid scalaJSModuleKind to be different from CommonJSModule on projects where ScalaJSBundler plugin is enabled.

You can find the complete list of commits since the last release here.

Version 0.2.1

2016 November 2

  • #24: Fixed npm command in Windows (thanks to @DylanArnold) ;
  • #25: Fixed the scalaJSPipeline task to correctly support source maps.

You can find the complete list of commits since the last release here.

Version 0.2

2016 November 1

  • #14: Improved documentation ;
  • #17: Faster live-reloading workflow (fastOptJS::webpack is ~10x faster) ;
  • #18: ScalaJSBundlerPlugin is not anymore automatically triggered: you have to manually enable it on your projects. scalaJSModuleKind is automatically set to ModuleKind.CommonJSModule when ScalaJSBundlerPlugin is enabled, so you don’t anymore have to set it in your build ;
  • #20: JavaScript files that are on the classpath can be @JSImported by your Scala facades.

You can find the complete list of commits since the last release here.