La configuration des modules avec RequireJS lors de la config dépend de RequireJS
Excuses si j'ai manqué ce dans les docs. Fondamentalement, je veux utiliser le module RequireJS fonctionnalité de configuration. Je voudrais gérer de manière centralisée la config valeurs données pour les modules dans un package.
Ceci est un exemple de la documentation:
requirejs.config({
config: {
'bar': {
size: 'large'
},
'baz': {
color: 'blue'
}
}
});
//bar.js, which uses simplified CJS wrapping:
define(function (require, exports, module) {
//Will be the value 'large'
var size = module.config().size;
});
//baz.js which uses a dependency array,
define(['module'], function (module) {
//Will be the value 'blue'
var color = module.config().color;
});
Mon problème est que mes informations de configuration sera un peu plus complexe, et elle-même ont des dépendances. Je voudrais faire:
requirejs.config({
config: {
'bar': {
path: path.dirname(module.uri)
key: crypto.randomBytes(64)
},
}
});
Où les variables dans ma config besoin d'utiliser requireJS à évaluer.
Pour moi, il serait logique qu'il y ait une séparation logique entre les RequireJS de la configuration la configuration nécessaire pour le chargement des modules et de l'utilisateur de configuration du module. Mais je suis actuellement des difficultés pour trouver ceci 🙁
OriginalL'auteur greTech | 2013-01-25
Vous devez vous connecter pour publier un commentaire.
Pour ce genre de solution, j'aurais le module dépendent de la "config" module que vous pouvez échanger pour un autre, en utilisant les chemins de config. Donc, si "bar" besoin d'un peu de config, "bar.js" ressemblerait à:
Alors barConfig.js il pourrait y avoir d'autres dépendances:
Alors, si vous avez besoin de différentes configs pour dire, la production vs dev, l'utilisation des chemins de config de la carte barConfig à d'autres valeurs:
OriginalL'auteur jrburke
Je pense que la bonne façon de le faire est de faire une config module...
Ensuite l'utiliser dans d'autres modules...
Vous pouvez, puis le faire aussi compliqué que vous le souhaitez!
EDIT: Vous pourraient polluer l'espace de noms global pour cette classe spéciale...
Ajouter à haut niveau nécessitent appel:
Alors vous pouvez l'utiliser sans toujours l'ajouter à vos définir:
Découvrez mon montage globales sont approprié si vous utilisez quelque chose partout
Non merci pour polluer globals, je suis également à l'aide de Node.js 🙂
Ah, vrai! Donc difficile de dire parfois :p Votre solution ne remplace 'config' avec 'module' si, en plus complexes, trop. N'importe où vous avez besoin des paramètres de configuration vous aurez à faire "module" dans vos définir. Vous pouvez utiliser ma solution mais le changement de la fenêtre.config = {...} module.config = {...} (module est vraiment l'espace de noms global en nodejs?)
OriginalL'auteur Felix
Avoir réfléchi un peu plus, je suis venu avec une solution de contournement. Il n'est pas particulièrement jolie, mais elle ne semble pas fonctionner.
Je n'ai tout simplement requireJS(...) deux fois, d'abord pour créer le fichier de configuration, et la seconde à charger les modules de l'application avec la config..
Et en bar.café
OriginalL'auteur greTech
Riffs sur ce @jrburke dit, j'ai trouvé le motif suivant pour être tout à fait utile de définir une config du module et de ses dépendances dans la
main.js
juste avant l'invocation derequire.config()
.main.js
app.js
Plnkr Démo: http://plnkr.co/edit/I35bEgaazEAMD0u4cNuj
OriginalL'auteur f1lt3r