Allows the usage of vulcanize from within sbt.
Needs vulcanize and mkdirp installed in node path:
{
...
"dependencies": {
"vulcanize": "^1.14.0",
"mkdirp": "^0.5.0"
},
...
}Use the addSbtPlugin in your project's plugins.sbt:
addSbtPlugin("com.tmzint.sbt" % "sbt-vulcanize" % "0.4.0")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)Enabling the Vulcanize pipline stage:
pipelineStages := Seq(vulcanize/*, gzip*/)The plugin allows the use of all options of the vulcanize cli https://github.com/polymer/vulcanize - at point of writing.
| Option | Description |
|---|---|
| inlineScripts | Inline external scripts. |
| inlineCss | Inline external stylesheets. |
| exclude | Exclude subpaths from root. |
| stripExclude | Exclude a subpath and strip the link that includes it. |
| stripComments | Strips all HTML comments not containing an @license from the document. |
| noImplicitStrip | DANGEROUS! Avoid stripping imports of the transitive dependencies of imports specified with --exclude. May result in duplicate javascript inlining. |
| abspath | Make all adjusted urls absolute. |
| addImport | Add these imports to the target HTML before vulcanizing. |
| redirect | Takes an argument in the form of URI | PATH where url is a URI composed of a protocol, hostname, and path and PATH is a local filesystem path to replace the matched URI part with. Multiple redirects may be specified; the earliest ones have the highest priority. |
By default main.html is the entry point fed to Vulcanize. Beyond just main.html, you can use an expression in your build.sbt like the
following, which uses all html files not starting with an _ as entry points:
includeFilter in vulcanize := GlobFilter("*.html")
excludeFilter in vulcanize := GlobFilter("_*.html")