Есть вот такой код gulp с циклом
`exports.default = compileSaveTool`
function compileSaveTool (cb) {
...
for (const tool in allCodes) {
for (const code of allCodes[tool]) {
const lang = code.length === 2 ? code : code.slice(0, -3)
compile(allASaveTools, code, lang, allCodes, tool)
}
}
cb()
}
И функция `compile`
function compile (allASaveTools, code, lang, allCodes, tool) {
/** Сборка HTML на конкретном языке */
const langFile = yaml.safeLoad(
fs.readFileSync(`${srcDir}/lang/landing/${lang}.yaml`, 'utf8')
)
const JsChunks = utils.getAppJsChunks()
const CssChunks = utils.getAppCssChunks()
const langInfo = require(`${srcDir}/lang/langInfo.json`)
const content = fs.readFileSync(
`${srcDir}/lang/save_tools/${lang}/${tool}.md`,
'utf8'
)
// FIXME тут ГЛЮК! почему-то используется послежний язык в списке
const more = {
code, // <=== !!!!!! передаем код в шаблонизатор
langInfo,
content: md.render(content),
filename: tool,
allASaveTools: allASaveTools,
h1: allASaveTools[tool][lang]['title'],
moment,
allCodes,
JsChunks,
CssChunks
}
return src(`${srcDir}/templates/save_tools.html.ejs`)
.pipe(ejs(Object.assign(allASaveTools[tool][lang], more, langFile))) // <=== !!!!!! шаблонизатор
.pipe(replace('<img src', '<img loading="lazy" src'))
.pipe(rename('index.html_' + code)) // <=== !!!!!! добавляем к имени файла
.pipe(dest(`dist/${code}/${tool}/`)) // <=== !!!!!! код также в структуре папок
}
В `lang` код языка типа `ru`, а в `code` - типа `ru-ru` или `ru-by`. Так вот, code используется в пути к файлу и в шаблонизаторе ``. А также добавил его к имени файла для наглядности.
Все файлы создаются в нужных папках с нужными именами согласно списку языковых кодов (code). Например,
- `dist/ru-ru/tool1/index.html_ru-ru`
- `dist/ru-by/tool1/index.html_ru-by`
- `dist/ru-kz/tool1/index.html_ru-kz`
Но вот внутри файлов почему-то оказывается только последний код языка. То есть в каждом этом файле будет записан код `ru-kz`, а не тот, что был передан в шаблонизатор. При этом все остальные переменные шаблона записаны правильно. Кроме кода.
Почему так происходит?