Я нахожу способ заставить MathJax работать в определенной c JS среде выполнения с множеством ограничений.
MathJax использует global
для доступа к объекту MathJax, и это скомпилирован Webpack в следующий фрагмент:
function (e, t) {
var n;
n = function () {
return this;
}();
try {
n = n || new Function("return this")()
} catch (e) {
"object" == typeof window && (n = window)
}
e.exports = n
}
Приведенный выше код попытается назначить глобальный this
на e.exports
, а использование global
в исходном коде MathJax будет заменено на e.exports
. Однако в моей среде выполнения JS window
/ global
недоступны, function () { return this; }
возвращает undefined
, new Function
ограничено и возвращает только пустой объект вместо функции.
Мой вопрос в том, можно ли настроить Webpack для замены global
какой-либо другой переменной, которую я указываю (например, limitedGlobal.someVar
)?
Для справки, я обнаружил, что приведенный выше фрагмент определен в GlobalRuntimeModule. js, и я хочу изменить его реализацию.