UNPKG

@lipemat/postcss-boilerplate

Version:

Dependencies and scripts for a no config grunt postcss compiler.

79 lines (66 loc) 2.08 kB
import fs from 'fs'; import {getPackageConfig, type PackageConfig} from '@lipemat/js-boilerplate-shared/helpers/package-config.js'; import {getDistFolder} from '../helpers/enum-modules'; import {addTrailingSlash, removeTrailingSlash} from '@lipemat/js-boilerplate-shared/helpers/string.js'; type Event = 'all' | 'changed' | 'added' | 'deleted'; type Task = { files: string[]; tasks?: string[]; options: { atBegin?: boolean; dateFormat?: ( time: number ) => void; debounceDelay?: number; event?: Event | Event[]; forever?: boolean; interval?: number; livereload?: boolean | PackageConfig['certificates']; reload?: boolean; spawn?: boolean; }; }; export type WatchGruntTasks = { postcss: Task; php: Task; }; const packageConfig: PackageConfig = getPackageConfig(); let livereload: boolean | PackageConfig['certificates'] = true; // Load local certificates for https if available. if ( 'object' === typeof ( packageConfig.certificates ) && 'development' === process.env.NODE_ENV ) { livereload = { cert: fs.readFileSync( packageConfig.certificates.cert ).toString(), key: fs.readFileSync( packageConfig.certificates.key ).toString(), }; } const postCSSTasks = [ 'postcss:toCSS', ]; postCSSTasks.unshift( 'caching:reset' ); postCSSTasks.push( 'caching:writeModules:development' ); if ( getPackageConfig().cssEnums ) { postCSSTasks.push( 'caching:reload' ); } const themePath: string = addTrailingSlash( packageConfig.theme_path ); const config: WatchGruntTasks = { postcss: { files: packageConfig.pcssWatch.map( ( folder: string ) => { return addTrailingSlash( `${themePath}${removeTrailingSlash( folder )}` ) + `**/*.{pcss,css}`; } ), tasks: postCSSTasks, options: { spawn: false, livereload: false, }, }, php: { files: [ ...packageConfig.phpWatch.map( ( folder: string ): string => { return addTrailingSlash( `${themePath}${removeTrailingSlash( folder )}` ) + `**/*.php`; } ), `!${getDistFolder( 'development', true )}/**/*.php`, ], options: { livereload, }, }, }; module.exports = config;