UNPKG

@swift-ws/gulp-kit

Version:

A starter kit for automating frontend development using Gulp.js.

45 lines (33 loc) 2.35 kB
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};