UNPKG

@roots/bud-minify

Version:

CSS and JS minification for bud.js

52 lines (51 loc) 1.87 kB
import { __decorate } from "tslib"; import { Bud } from '@roots/bud-framework'; import { Extension } from '@roots/bud-framework/extension'; import { dependsOn } from '@roots/bud-framework/extension/decorators/dependsOn'; import { expose } from '@roots/bud-framework/extension/decorators/expose'; import { label } from '@roots/bud-framework/extension/decorators/label'; import { production } from '@roots/bud-framework/extension/decorators/production'; import { bind } from '@roots/bud-support/decorators/bind'; /** * Minimizer configuration */ let BudMinimize = class BudMinimize extends Extension { /** * {@link Extension.buildBefore} */ async buildBefore(bud) { bud.hooks.on(`build.optimization.minimize`, this.enabled); } /** * {@link Extension.register} */ async register(bud) { bud.set(`minify`, this, false); this.js = bud.extensions.get(`@roots/bud-minify/minify-js`); bud.set(`terser`, bud.extensions.get(`@roots/bud-minify/minify-js`)); this.css = bud.extensions.get(`@roots/bud-minify/minify-css`); bud.set(`minimizeCss`, bud.extensions.get(`@roots/bud-minify/minify-css`)); } enable(value = true) { this.enabled = value instanceof Bud ? true : value; this.logger.log(this.enabled ? `enabled` : `disabled`); this.app.hooks.on(`build.optimization.minimize`, this.enabled); return this; } }; __decorate([ bind ], BudMinimize.prototype, "buildBefore", null); __decorate([ bind ], BudMinimize.prototype, "register", null); __decorate([ bind ], BudMinimize.prototype, "enable", null); BudMinimize = __decorate([ label(`@roots/bud-minify`), expose(`minimizers`), dependsOn([`@roots/bud-minify/minify-css`, `@roots/bud-minify/minify-js`]), production ], BudMinimize); export { BudMinimize as default };