@swift-ws/gulp-kit
Version:
A starter kit for automating frontend development using Gulp.js.
45 lines (33 loc) • 2.35 kB
JavaScript
import {existsSync} from 'fs';
import {resolve} from 'path';
import {deepMerge, replacePlaceholders} from "./helpers/helpers.js";
import {config as defaultConfig} from "./default.config.js";
// Проверка наличия пользовательского файла конфигурации
const userConfigPath = resolve('gulp-kit.config.js');
let userConfig = {};
if (existsSync(userConfigPath)) {
userConfig = await import(`file://${userConfigPath}`);
userConfig = userConfig.config || {};
}
// Объединение конфигурации по умолчанию и пользовательской конфигурации
let config = deepMerge(defaultConfig, userConfig);
// Override config
const overrideConfigPath = resolve('gulp-kit.override.config.js');
let overrideConfig = {};
if (existsSync(overrideConfigPath)) {
overrideConfig = await import(`file://${overrideConfigPath}`);
overrideConfig = overrideConfig.config || {};
}
config = deepMerge(config, overrideConfig);
// Подготовка конфигурации
config.task.zip.name = replacePlaceholders(config.task.zip.pattern);
let script = process.env.npm_lifecycle_event;
config.task.script.dirDest = config.task.script.dest.hasOwnProperty(script) ? config.task.script.dest[script] : config.task.script.dest.default;
config.task.style.dirDest = config.task.style.dest.hasOwnProperty(script) ? config.task.style.dest[script] : config.task.style.dest.default;
config.task.image.dirDest = config.task.image.dest.hasOwnProperty(script) ? config.task.image.dest[script] : config.task.image.dest.default;
config.task.core.dirDest = config.task.core.dest.hasOwnProperty(script) ? config.task.core.dest[script] : config.task.core.dest.default;
config.task.static.dirDest = config.task.static.dest.hasOwnProperty(script) ? config.task.static.dest[script] : config.task.static.dest.default;
config.task.fonts.dirDest = config.task.fonts.dest.hasOwnProperty(script) ? config.task.fonts.dest[script] : config.task.fonts.dest.default;
config.task.googleFonts.dirDest = config.task.googleFonts.dest.hasOwnProperty(script) ? config.task.googleFonts.dest[script] : config.task.googleFonts.dest.default;
config.task.clean.dirClean = config.task.clean.dir.hasOwnProperty(script) ? config.task.clean.dir[script] : config.task.clean.dir.default;
export {config};