Самый простой способ, учитывая ваши настройки, ИМХО: используйте привязки в качестве комментариев, чтобы знать границы вашего массива:
const providers = [
//ANCHOR_PROVIDERS_START
${providers}
//ANCHOR_PROVIDERS_END
]
Затем обновите что-то вроде:
fileContent.replace(
'//ANCHOR_PROVIDERS_END',
`,${moreProviders}\n//ANCHOR_PROVIDERS_END`
);
ВыМожно также сделать функцию для перезаписи существующего контента, используя начальный якорь.
Однако, возможно, более гибко использовать JSON:
const providers = JSON.parse(
${providersAsJsonArray}
);//ANCHOR_PROVIDERS_END
Таким образом, вы можете извлечь массив, изменить егокак вам нравится, и установите его обратно в файл следующим образом:
fileContent.replace(
/(const providers = JSON.parse\(\n)(.+)(\n\s*\);\/\/ANCHOR_PROVIDERS_END)/m,
(match, starting, sjson, closing) => {
const json = JSON.parse(sjson);
// do something with json, which represents the existing array
json.push({ some: 'new', value: 'is now inserted' });
// inject the new content
return `${starting}${JSON.stringify(json)}${closing}`;
}
);
В этом духе, и поскольку это становится немного утомительным, вы также можете объявить свои данные в соседнем файле .json и прочитатьэто из вашего .pep.config.js
, чтобы заполнить вашу переменную.Вы даже можете require
, но будьте осторожны, так как кеш не предоставляет вам устаревшую версию JSON.