1
0
mirror of https://github.com/locomotivemtl/locomotive-boilerplate.git synced 2026-01-15 00:55:08 +08:00

Add support for customizing glob in concats.js

Added:
- Argument `globOptions` to `concatFiles()` function to customize glob library.
This commit is contained in:
Chauncey McAskill
2022-02-08 14:40:00 -05:00
parent 9d18205b0f
commit 38a6c73d2f
2 changed files with 37 additions and 5 deletions

View File

@@ -6,15 +6,47 @@ import template from '../utils/template.js';
import concat from 'concat'; import concat from 'concat';
import { basename } from 'node:path'; import { basename } from 'node:path';
/**
* @const {object} defaultGlobOptions - The default shared glob options.
* @const {object} developmentGlobOptions - The predefined glob options for development.
* @const {object} productionGlobOptions - The predefined glob options for production.
*/
export const defaultGlobOptions = {
};
export const developmentGlobOptions = Object.assign({}, defaultGlobOptions);
export const productionGlobOptions = Object.assign({}, defaultGlobOptions);
/**
* @const {object} developmentConcatFilesArgs - The predefined `concatFiles()` options for development.
* @const {object} productionConcatFilesArgs - The predefined `concatFiles()` options for production.
*/
export const developmentConcatFilesArgs = [
developmentGlobOptions,
];
export const productionConcatFilesArgs = [
productionGlobOptions,
];
/** /**
* Concatenates groups of files. * Concatenates groups of files.
* *
* @todo Add support for minification. * @todo Add support for minification.
* *
* @async * @async
* @param {object} [globOptions=null] - Customize the glob options.
* If `null`, default production options are used.
* @return {Promise} * @return {Promise}
*/ */
export default async function concatFiles() { export default async function concatFiles(globOptions = null) {
if (globOptions == null) {
globOptions = productionGlobOptions;
} else if (
globOptions !== developmentGlobOptions &&
globOptions !== productionGlobOptions
) {
globOptions = Object.assign({}, defaultGlobOptions, globOptions);
}
loconfig.tasks.concats.forEach(async ({ loconfig.tasks.concats.forEach(async ({
includes, includes,
outfile, outfile,
@@ -31,7 +63,7 @@ export default async function concatFiles() {
includes = includes.map((path) => template(path)); includes = includes.map((path) => template(path));
outfile = template(outfile); outfile = template(outfile);
const files = await glob(includes); const files = await glob(includes, globOptions);
await concat(files, outfile); await concat(files, outfile);

View File

@@ -1,5 +1,5 @@
import loconfig from '../loconfig.json'; import loconfig from '../loconfig.json';
import concatFiles from './tasks/concats.js'; import concatFiles, { developmentConcatFilesArgs } from './tasks/concats.js';
import compileScripts, { developmentScriptsArgs } from './tasks/scripts.js'; import compileScripts, { developmentScriptsArgs } from './tasks/scripts.js';
import compileStyles, { developmentStylesArgs } from './tasks/styles.js' ; import compileStyles, { developmentStylesArgs } from './tasks/styles.js' ;
import compileSVGs, { developmentSVGsArgs } from './tasks/svgs.js'; import compileSVGs, { developmentSVGsArgs } from './tasks/svgs.js';
@@ -45,7 +45,7 @@ server.init(serverConfig);
// Build scripts, compile styles, concat files, // Build scripts, compile styles, concat files,
// and generate spritesheets on first hit // and generate spritesheets on first hit
concatFiles(); concatFiles(...developmentConcatFilesArgs);
compileScripts(...developmentScriptsArgs); compileScripts(...developmentScriptsArgs);
compileStyles(...developmentStylesArgs); compileStyles(...developmentStylesArgs);
compileSVGs(...developmentSVGsArgs); compileSVGs(...developmentSVGsArgs);
@@ -76,7 +76,7 @@ server.watch(
[] []
).map((path) => template(path)) ).map((path) => template(path))
).on('change', () => { ).on('change', () => {
concatFiles(); concatFiles(...developmentConcatFilesArgs);
}); });
// Watch source styles // Watch source styles