UNPKG

@swift-ws/gulp-kit

Version:

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

89 lines (77 loc) 2.25 kB
import {existsSync} from 'fs'; import {resolve} from 'path'; import {deepMerge, replacePlaceholders} from "./helpers/helpers.js"; // Базовые пути по умолчанию const baseConfig = { tasks: { script: { patternSource: '/**/*.{js,ts,tsx}', patternIgnore: '/**/_*.{js,ts,tsx}' }, style: { patternSource: '/**/*.{css,scss,sass}', patternIgnore: '/**/_*.{css,scss,sass}' }, image: { patternSource: '/**/*.{png,jpg,jpeg,svg,ico,webp}', patternIgnore: '/**/_*.{png,jpg,jpeg,svg,ico,webp}', optimize: false, }, core: { patternSource: '/**/*.{html,xml,php,twig,json}', patternIgnore: '/**/_*.{html,xml,php,twig,json}' }, static: { paths: [], watch: '', }, ftp: { host: '', user: '', password: '', port: 21, parallel: 5, log: '', src: [], remotePath: '/', watch: '', }, zip: { pattern: '{name}-{version}.zip', prefix: '', src: '', dest: '', }, googleFonts: { }, clean: { dir: { } } }, dest: 'build', scriptDest: {}, src: 'src', cleanDir: '', dist: 'dist', replacements: [], }; // Проверка наличия локального файла конфигурации пользователя const userConfigPath = resolve('gulp-kit.config.js'); let userConfig = {}; if (existsSync(userConfigPath)) { userConfig = await import(`file://${userConfigPath}`); userConfig = userConfig.config || {}; } // Merge baseConfig & userConfig let config = deepMerge(baseConfig, userConfig); // Prepare config config.tasks.zip.name = replacePlaceholders(config.tasks.zip.pattern); let script = process.env.npm_lifecycle_event; if (config.scriptDest.hasOwnProperty(script)) { config.dest = config.scriptDest[script]; } if (config.tasks.clean.dir.hasOwnProperty(script)) { config.cleanDir = config.tasks.clean.dir[script]; } export {config};