whether to enable the “reload workflow” for webpack in fastOptJS.
whether to enable the “reload workflow” for webpack in fastOptJS.
When enabled, dependencies are pre-bundled so that the output of fastOptJS can directly
be executed by a web browser without being further processed by a bundling system. This
reduces the delays when live-reloading the application on source modifications. Defaults
to false.
Note that the “reload workflow” does uses the custom webpack configuration file scoped to the webpackReload task.
For example:
webpackConfigFile in webpackReload := Some(baseDirectory.value / "webpack-reload.config.js"),
Locally install jsdom.
Locally install jsdom.
You can set the jsdom package version to install with the key version in installJsdom.
Returns the installation directory.
Locally install webpack-dev-server.
Locally install webpack-dev-server.
You can set the webpack-dev-server package version to install with the key version in installWebpackDevServer.
Returns the installation directory.
List of the NPM packages (name and version) your application depends on.
List of the NPM packages (name and version) your application depends on. You can use [semver](https://docs.npmjs.com/misc/semver) versions:
npmDependencies in Compile += "uuid" -> "~3.0.0"
Note that this key must be scoped by a Configuration (either Compile or Test).
Map of NPM packages (name -> version) to use in case transitive NPM dependencies refer to a same package but with different version numbers.
Map of NPM packages (name -> version) to use in case transitive NPM dependencies refer to a same package but with different version numbers. In such a case, this setting defines which version should be used for the conflicting package. Example:
npmResolutions in Compile := Map("react" -> "15.4.1")
If several Scala.js projects depend on different versions of react, the version 15.4.1
will be picked. But if all the projects depend on the same version of react, the version
given in npmResolutions will be ignored.
Note that this key must be scoped by a Configuration (either Compile or Test).
Fetches NPM dependencies.
Fetches NPM dependencies. Returns the directory in which the npm install command has been run.
The plugin uses different directories according to the configuration (Compile or Test). Thus,
this setting is scoped by a Configuration.
Typically, if you want to define a task that uses the downloaded NPM packages you should
specify the Configuration you are interested in:
myCustomTask := {
val npmDirectory = (npmUpdate in Compile).value
doSomething(npmDirectory / "node_modules" / "some-package")
}The task returns the directory in which the dependencies have been fetched (the directory
that contains the node_modules directory).
Start background webpack-dev-server process.
Start background webpack-dev-server process.
If webpack-dev-server is already running, it will be restarted.
The started webpack-dev-server receives the following arguments:
- --config is set to value of webpackConfigFile setting.
- --port is set to value of webpackDevServerPort setting.
- Contents of webpackDevServerExtraArgs setting.
Stop running webpack-dev-server process.
Stop running webpack-dev-server process.
Does nothing if the server is not running.
Whether to use Yarn to fetch dependencies instead
of npm.
Whether to use Yarn to fetch dependencies instead
of npm. Yarn has a caching mechanism that makes the process faster.
If set to true, it requires the yarn command to be available in the
host platform.
Defaults to false.
Bundles the output of a Scala.
Bundles the output of a Scala.js stage.
This task must be scoped by a Scala.js stage (either fastOptJS or fullOptJS) and
a Configuration (either Compile or Test).
For instance, to bundle the output of fastOptJS, run the following task from the sbt shell:
fastOptJS::webpack
Or, in an sbt build definition:
webpack in (Compile, fastOptJS)
Note that to scope the task to a different project than the “current” sbt project, you have to write the following:
webpack in (projectRef, Compile, fastOptJS in projectRef)
The task returns the produced bundles.
The task is cached, so webpack is only launched when some of the used files have changed. The list of files to be monitored is provided by webpackMonitoredFiles
configuration file to use with webpack.
configuration file to use with webpack. By default, the plugin generates a configuration file, but you can supply your own file via this setting. Example of use:
webpackConfigFile in fullOptJS := Some(baseDirectory.value / "my.dev.webpack.config.js")
You can find more insights on how to write a custom configuration file in the cookbook.
Additional arguments to webpack-dev-server.
Additional arguments to webpack-dev-server.
Defaults to an empty list.
Port, on which webpack-dev-server will be launched.
Port, on which webpack-dev-server will be launched.
Defaults to 8080.
whether to enable (or not) source-map in
a given configuration (Compile or Test) and stage (fastOptJS or fullOptJS).
whether to enable (or not) source-map in
a given configuration (Compile or Test) and stage (fastOptJS or fullOptJS). Example
of use:
webpackEmitSourceMaps in (Compile, fullOptJS) := falseNote that, by default, this setting takes the same value as the Scala.js’ emitSourceMaps
setting, so, to globally disable source maps you can just configure the emitSourceMaps
setting:
emitSourceMaps := falseList of entry bundles to generate.
List of entry bundles to generate. By default it generates just one bundle for your main class.
Additional directories, monitored for webpack launch.
Additional directories, monitored for webpack launch.
Changes to files in these directories that match
includeFilter scoped to webpackMonitoredFiles enable
webpack launch in webpack task.
Defaults to an empty Seq.
List of files, monitored for webpack launch.
List of files, monitored for webpack launch.
By default includes the following files:
package.jsonwebpackEntries task.webpackMonitoredDirectories, filtered by
includeFilter
Bundles the output of a Scala.
Bundles the output of a Scala.js stage using the reload workflow.
This is equivalent to running fastOptJS::webpack with reloadWorkflow := true. This task must be scoped by the Scala.js fastOptJS stage.
For instance, to bundle the output of fastOptJS, run the following task from the sbt shell:
fastOptJS::webpackReload
To use a custom webpack configuration file use:
webpackConfigFile in webpackReload := Some(baseDirectory.value / "webpack-reload.config.js"),
Webpack configuration files to copy to the target directory.
Webpack configuration files to copy to the target directory. These files can be merged into the main configuration file.
By default all .js files in the project base directory are copied:
baseDirectory.value * "*.js"How to share these configuration files among your webpack config files is documented in the cookbook.