uppy
Version:
Extensible JavaScript file upload widget with support for drag&drop, resumable uploads, previews, restrictions, file processing/encoding, remote providers like Instagram, Dropbox, Google Drive, S3 and more :dog:
61 lines (55 loc) • 1.89 kB
JavaScript
var sass = require('node-sass')
var postcss = require('postcss')
var autoprefixer = require('autoprefixer')
var cssnano = require('cssnano')
var chalk = require('chalk')
var fs = require('fs')
var path = require('path')
var mkdirp = require('mkdirp')
mkdirp.sync('./dist/')
function handleErr (err) {
console.error(chalk.red('✗ Error:'), chalk.red(err.message))
}
function minifyCSS () {
return new Promise(function (resolve) {
fs.readFile('./dist/uppy.css', function (err, css) {
if (err) handleErr(err)
postcss([ cssnano ])
.process(css, { from: path.join(__dirname, '../dist/uppy.css') })
.then(function (postCSSResult) {
postCSSResult.warnings().forEach(function (warn) {
console.warn(warn.toString())
})
fs.writeFile('./dist/uppy.min.css', postCSSResult.css, function (err) {
if (err) handleErr(err)
console.info(chalk.green('✓ Minified Bundle CSS:'), chalk.magenta('uppy.min.css'))
resolve()
})
})
})
})
}
function compileCSS () {
return new Promise(function (resolve) {
sass.render({file: './src/scss/uppy.scss'}, function (err, sassResult) {
if (err) handleErr(err)
postcss([ autoprefixer ])
.process(sassResult.css, { from: path.join(__dirname, '../src/scss/uppy.scss') })
.then(function (postCSSResult) {
postCSSResult.warnings().forEach(function (warn) {
console.warn(warn.toString())
})
fs.writeFile('./dist/uppy.css', postCSSResult.css, function (err) {
if (err) handleErr(err)
console.info(chalk.green('✓ Built Uppy CSS:'), chalk.magenta('uppy.css'))
resolve()
})
})
})
})
}
compileCSS()
.then(minifyCSS)
.then(function () {
console.info(chalk.yellow('✓ CSS Bundle 🎉'))
})