Yukarıda belirtildiği gibi, komut dosyanızda en üst kapsamın kullanılmasıyla ilgili sorunlar vardır. İşte başka bir sorun: Komut dosyası, bazı çalışma zamanı ortamında genel bağlamda olmayan bir bağlamdan çalıştırılabilir.
Küreselin window
doğrudan atanması önerilmiştir . Ancak bu aynı zamanda çalışma zamanına bağlıdır ve Düğümde vb. Çalışmaz. Taşınabilir genel değişken yönetiminin biraz dikkatli değerlendirme ve ekstra çaba gerektirdiğini gösterir. Belki gelecekteki ECMS sürümlerinde düzelteceklerdir!
Şimdilik, tüm çalışma zamanı ortamları için uygun küresel yönetimi desteklemek için buna benzer bir şey öneriyorum:
var exportGlobal = function(name, object) {
if (typeof(global) !== "undefined") {
global[name] = object;
}
else if (typeof(window) !== "undefined") {
window[name] = object;
}
else {
throw new Error("Unkown run-time environment. Currently only browsers and Node.js are supported.");
}
};
exportGlobal("exportGlobal", exportGlobal);
exportGlobal("someothernamespace", {});
Biraz daha yazı yazıyor, ancak global değişken yönetiminizi geleceğe hazır hale getiriyor.
Sorumluluk reddi: Bu fikrin bir kısmı, stacktrace.js'nin önceki sürümlerine bakarken aklıma geldi .
Tahminimce, çalışma zamanı ortamının daha güvenilir ve daha az hacklenmiş tespiti için Webpack veya diğer araçlar da kullanılabilir.