Skip to content

Instantly share code, notes, and snippets.

@jbmoelker
Created May 10, 2016 07:04
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jbmoelker/017fb79db23072f9f3513d719f054273 to your computer and use it in GitHub Desktop.
Save jbmoelker/017fb79db23072f9f3513d719f054273 to your computer and use it in GitHub Desktop.
PostCSS setup (imports, vars, autoprefix, minify) with and without Gulp
const gulp = require('gulp');
const postcss = require('gulp-postcss');
const rename = require('gulp-rename');
const sourcemaps = require('gulp-sourcemaps');
gulp.src('./src/index.css')
.pipe(sourcemaps.init())
.pipe(postcss([
require('postcss-import'), // combine imports into one file
require('postcss-css-variables'), // replace variables by their values
require('autoprefixer'), // vendor prefix for older browsers
require('cssnano') // minify css
]))
.pipe(rename('demo-viewer.css'))
.pipe(sourcemaps.write('.'))
.pipe(gulp.dest('dist/'));
const fs = require('fs');
const postcss = require('postcss');
const inputFilename = 'src/index.css';
const outputDir = 'dist/';
const outputFilename = 'dist/demo-viewer.css';
postcss([
require('postcss-import'), // combine imports into one file
require('postcss-css-variables'), // replace variables by their values
require('autoprefixer'), // vendor prefix for older browsers
require('cssnano') // minify css
])
.process(fs.readFileSync(inputFilename), {
from: inputFilename,
to: outputFilename.substr(outputDir.length), // file path relative to output dir
map: { inline: false }
})
.then(result => {
fs.writeFileSync(outputFilename, result.css);
if (result.map) {
fs.writeFileSync(`${outputFilename}.map`, result.map);
}
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment