Tengo este programa que analiza un archivo json y asigna las claves y los valores a dos matrices. Luego recorre cada tecla, lee un archivo css y si hay una coincidencia en las variables css, vuelve a escribir el archivo con el valor correspondiente.
const fs = require('fs') const path = require('path') function applyConfigurationToCss() { let str = ''; let regex = new RegExp(`--${str}: .*$`, 'gm') let theme_keys = [] let theme_values = [] let css_file = fs.readFileSync('../style.css', 'utf-8') const key_value_pairs = JSON.parse(fs.readFileSync('../theme.json'), (key, value) => { theme_keys.push(key) theme_values.push(value) }) for (let i = 0; i < theme_keys.length - 2; i++) { str = theme_keys[i] console.log(str) regex = new RegExp(`--${str}: .*$`, 'gm') fs.writeFileSync('../style.css', css_file.replace(regex, `--${str}: ${theme_values[i]};`), 'utf-8') css_file = fs.readFileSync('../style.css', 'utf-8') console.log(process.memoryUsage()) } } applyConfigurationToCss()Funciona como debería por ahora, pero en cada ciclo del ciclo for el valor heapUsed crece. Ahora estoy investigando más sobre la gestión de la memoria y me preguntaba si esto es una señal de una fuga de memoria. Aquí está la salida del programa:
color0 { rss: 34164736, heapTotal: 4980736, heapUsed: 4240312, external: 452419, arrayBuffers: 19350 } color1 { rss: 34615296, heapTotal: 5513216, heapUsed: 4778160, external: 452459, arrayBuffers: 19350 } color2 { rss: 34615296, heapTotal: 5513216, heapUsed: 4791600, external: 460651, arrayBuffers: 27542 } color3 { rss: 34615296, heapTotal: 5513216, heapUsed: 4805008, external: 468843, arrayBuffers: 35734 } bg-img { rss: 34615296, heapTotal: 5513216, heapUsed: 4815472, external: 468843, arrayBuffers: 35734 }