我在ejs文件中有一个内联(在html / ejs中)脚本,该文件是由node构建的。
homepage.ejs
<html>
<head>
<script>
var i18nRotatingKws = [];
for (var i=1; i<90; i++) {
var i18nRotatingKws[i] = "<%- `rotatingKws.rotatingKw${i}` %>";
}
</script>
</head>
</html>
编译ejs文件后的输出应为:
<html>
<head>
<script>
var i18nRotatingKws = [];
var i18nRotatingKws[1] = "<%- rotatingKws.rotatingKw1 %>";
var i18nRotatingKws[2] = "<%- rotatingKws.rotatingKw2 %>";
var i18nRotatingKws[3] = "<%- rotatingKws.rotatingKw3 %>";
var i18nRotatingKws[4] = "<%- rotatingKws.rotatingKw4 %>";
//and so on until 90
</script>
</head>
</html>
这些值,rotatingKws.rotatingKw1,rotatingKws.rotatingKw2 ...都在i18n文件中定义(取决于语言)。
我在ejs中不使用任何循环,它运行良好。这意味着,如果我真的写了90行,例如var i18nRotatingKws[1] = "<%- rotatingKws.rotatingKw1
%>“;`构建有效,并且我在网页上进行了检查,那么它也可以正常工作。
我有一个特殊的node.js脚本,该脚本在tje ejs编译以更改i18n文件中的值之前解析ejs文件,如下所示:
i18n / locales.js
module.exports = {
rotatingKws: {
rotatingKw1: __("rotatingKw1"),
rotatingKw2: __("rotatingKw2"),
rotatingKw3: __("rotatingKw3"),
},
}
locales / fr.js
module.exports = {
//rotatingKws
"rotatingKw1":"nice keyword1",
"rotatingKw2":"cool stuff",
"rotatingKw3":"hip man",
}
问题出在循环:构建失败,并且出现以下错误:
i is not defined at eval
该如何解决?