Objetivo:
Así que estoy usando Eleventy como un SSG y quiero crear varias carpetas y copiar algunos archivos en estas carpetas, antes de que Eleventy haga la construcción o la generación del sitio.
Un archivo JSON es para la matriz de títulos de sitios (nombres de carpetas).
Y elegí usar el módulo fs-extra en lugar del módulo fs de Node.js.
Dentro de .eleventy.js (archivo de configuración):
const fse = require('fs-extra'); const arrayFromJSON = require('./_data/sites.json'); const arrayTitles = arrayFromJSON.titles; eleventyConfig.on("beforeBuild", () => { // Create site folders and copy layout and frontmatter data to the folders arrayTitles.forEach(element => fse.copySync(`sitesource/index.njk`, `src/_sites/${element}/${element}.njk`, { recursive: true })); arrayTitles.forEach(element => fse.copySync(`sitesource/fm.11tydata.js`, `src/_sites/${element}/${element}.11tydata.js`, { recursive: true })); });He estado buscando ideas y ejemplos para combinar estas dos acciones en una, donde solo se necesita una vez para llamar a arrayTitles.forEach . Pero no lo he encontrado.
¿Es esto posible, y alguien con sugerencias para mejorar este código?
Puedo estar confundido, pero ¿por qué no simplemente usar uno para cada uno?
eleventyConfig.on("beforeBuild", () => { // Create site folders and copy layout and frontmatter data to the folders arrayTitles.forEach(element => fse.copySync(`sitesource/index.njk`, `src/_sites/${element}/${element}.njk`, { recursive: true }); fse.copySync(`sitesource/fm.11tydata.js`, `src/_sites/${element}/${element}.11tydata.js`, { recursive: true }); ); });