Skip to content

sbt-web plugin that filters intermediate assets

License

Notifications You must be signed in to change notification settings

anhgun/sbt-filter

This branch is 1 commit ahead of rgcottrell/sbt-filter:master.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

25155cd · Nov 7, 2023

History

15 Commits
Oct 24, 2017
Oct 24, 2017
Oct 24, 2017
Jul 6, 2014
Jul 6, 2014
Oct 24, 2017
Nov 7, 2023

Repository files navigation

sbt-filter

sbt-web plugin that filters intermediate assets on the asset pipeline.

This plugin may be used to remove any intermediate or unnecessary assets from the product build of your project. Only assets directly owned by the project can be filtered. Any assets living in the "lib" subdirectory are explicitly left unfiltered.

Add the plugin to the project/plugins.sbt of your project:

addSbtPlugin("com.slidingautonomy.sbt" % "sbt-filter" % "1.0.1")

Your project's build file also needs to enable sbt-web plugins. For example with build.sbt:

lazy val root = (project in file(".")).enablePlugins(SbtWeb)

The plugin must then be added as a new stage in the asset pipeline.

pipelineStages := Seq(filter)

File Filters

By default, the plugin allows all assets to pass through the pipeline. To filter assets, you must explicitly configure the includeFilter and excludeFilter to match your requirements.

Any asset matched by the includeFilter will be filtered from the build, unless it also matches the exclude filter. Because filtering is a negative action, the sense of the includeFilter and excludeFilter may seem reversed. Remember that the includeFilter selects assets to be filtered while the excludeFilter removes assets from the list of assets that will be filtered.

For example, to remove the original CoffeeScript and LESS sources from the assets build:

includeFilter in filter := "*.coffee" || "*.less"

Alternatively, you may wish to remove all JavaScript files except the concatenated and minified main.js produced by the RequireJS plugin:

includeFilter in filter := "*.js"

excludeFilter in filter := "main.js"

You can also remove a folder and all of its contents (including sub-folders). e.g. the "javascripts/working" folder and its contents with:

includeFilter in filter := PathFilter((sourceDirectory in Assets).value / "javascripts" / "working")

About

sbt-web plugin that filters intermediate assets

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Scala 95.3%
  • CoffeeScript 2.7%
  • JavaScript 2.0%