Require.JS Shim Config globalen Bereich?
Ich habe folgendes Setup für requireJS.
requirejs.config({
paths: {
'resources' : '/Scripts/resources'
},
shim: {
'resources': {
exports: 'LocalizedStrings'
}
}
});
Und meine resources.JS sehen so aus:
LocalizedStrings = {
title: "Demo",
save: "Save"
}
Wenn ich nun Ressourcen als Abhängigkeit in die main.JS-Datei lade, kann ich auf LocalizedStrings zugreifen und es funktioniert.
//main.js
define(function(require){
var LocalizedStrings = require('resources');
console.log(LocalizedStrings); //works as expected
});
In anderen Modulen muss ich die Ressourcen jedoch nicht unbedingt als Abhängigkeit für den Zugriff auf 'LocalizedStrings' laden.
//othermodule.js
define(function(require){
console.log(LocalizedStrings); //works as expected even though resources dependency is not loaded
});
Was ich hier nicht verstehe, ist, wenn ich eine JS-Datei mit shim lade und sie einmal lade, sie global verfügbar wird und ich dieselbe Abhängigkeit in anderen Modulen nicht erneut laden muss.