UNPKG

mincer

Version:

Web assets processor. Native JavaScript port of Sprockets.

91 lines (68 loc) 1.89 kB
/** * class Autoprefixer * * Post processor that runs autoprefixer for css. You will need `autoprefixer` * and `postcss` Node modules installed: * * npm install autoprefixer * npm install postcss * * * ##### SUBCLASS OF * * [[Template]] **/ 'use strict'; // 3rd-party var _ = require('lodash'); var path = require('path'); var autoprefixer, postcss; // initialized later // internal var Template = require('../template'); //////////////////////////////////////////////////////////////////////////////// // Class constructor var Autoprefixer = module.exports = function Autoprefixer() { Template.apply(this, arguments); autoprefixer = autoprefixer || Template.libs.autoprefixer || require('autoprefixer'); postcss = postcss || Template.libs.postcss || require('postcss'); }; require('util').inherits(Autoprefixer, Template); // Internal (private) requirements storage var requirements; /** * Autoprefixer.configure(reqs) -> Void * - reqs (Array|String): * * Allows to set Autoprefixer requirements. * * Default: `undefined`. * * * ##### Example * * Autoprefixer.configure(['> 1%', 'ie 8']); **/ Autoprefixer.configure = function (reqs) { requirements = _.clone(reqs); }; // Prefix data Autoprefixer.prototype.evaluate = function (context/*, locals*/) { var ap = postcss([ autoprefixer({ browsers: requirements }) ]), result; if (!context.environment.isEnabled('source_maps')) { this.data = ap.process(this.data).css; return; } // Reset sourceRoot bebore process - we work with relative paths var map = context.createSourceMapObject(this); result = ap.process(this.data, { map: { prev: map, inline: false }, from: path.basename(context.pathname), to: path.basename(context.pathname) }); this.map = result.map.toString(); this.data = result.css; };