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:
@@ -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);
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user