簡體   English   中英

是否可以通過 Webpack 覆蓋“全局”變量?

[英]Is it possible to overwrite “global” variable via Webpack?

我正在尋找一種方法讓 MathJax 能夠在具有很多限制的特定 JS 運行時上運行。

MathJax 使用global訪問 MathJax object,這是由 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 ,並且 MathJax 源代碼中global的使用將替換為e.exports 但是,在我的 JS 運行時, window / global不可用, function () { return this; } function () { return this; }返回undefinednew Function受到限制,只返回一個空的 object 而不是 function。

我的問題是,是否可以配置 Webpack 用我指定的其他變量(如limitedGlobal.someVar )替換global

作為參考,我發現上面的代碼片段是在GlobalRuntimeModule.js中定義的,我想更改它的實現。

當然,請看一下globalObject

它的默認值為global="window"

您可以在 webpack 配置中像這樣覆蓋它:

output: {
   globalObject: 'this' // or limitedGlobal.someVar in your case
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM