gulp-environment
Version:
Adds easy environment configuration and conditional piping to Gulp, based on NODE_ENV or parameters with yargs.
51 lines (39 loc) • 1.04 kB
JavaScript
var fs = require('fs')
var findConfig = require('find-config')
function loadConfig(filename) {
if (!fs.existsSync(filename)) {
throw new Error(filename + ' could not be found!')
}
var contents = fs.readFileSync(filename)
try {
return JSON.parse(contents)
} catch (e) {
throw new Error('Could not parse ' + filename + ' as JSON!', e)
}
}
function findAndLoadConfig(filename, options) {
var config = findConfig(
filename,
Object.assign({}, { home: false }, options)
)
if (!config) {
throw new Error('Could not find a ' + filename + ' file')
}
return loadConfig(config)
}
function loadFromDotfile() {
return findAndLoadConfig('.gulpenvrc')
}
function loadFromManifest() {
return findAndLoadConfig('package.json')['gulp-environment']
}
var defaultConfig = loadConfig(require.resolve('../.gulpenvrc'))
var config = {}
try {
config = loadFromDotfile()
} catch (e) {
try {
config = loadFromManifest()
} catch (e) {}
}
module.exports = Object.assign({}, defaultConfig, config)