Souhaite exporter un module qui obtient la définition du module à partir d'un objet global.
C'est quelque chose comme:
export { get DynamicModule() { return __globalFluxStorage.state.property.property.property.property } } ... import {DynamicModule} from 'dynamic-module'
Nous disposons d'un stockage de flux complexe et DynamicModule est juste un moyen d'accéder à __globalFluxStorage.state.property.property.property.property sans avoir besoin de taper l'accesseur de propriété longue. Est-ce possible? Merci.
Modifier:
Comme j'utilise babel, j'ai essayé quelque chose comme ça:
Object.defineProperty(module.exports, "Forms", { get: function() { return __globalFluxStorage.state.property.property.property.property } });
Mais ne fonctionne pas, c'est-à-dire que {DynamicModule} est undefined
Non, il est impossible de faire un getter pour un module export – ce sont des liaisons variables, pas des propriétés.
Cependant, vous pourriez simplement faire une exportation par défaut:
export default __globalFluxStorage.state.property.property.property.property;
import DynamicModule from 'dynamic-module';
Si vous souhaitez importer un nom, vous devrez déclarer le nom dans votre exportation:
export var DynamicModule = __globalFluxStorage.state.property.property.property.property;
import {DynamicModule} from 'dynamic-module';
Cela permettrait également de modifier la valeur plus tard lorsque ce n'est pas disponible au moment du chargement du module:
export var DynamicModule; … DynamicModule = __globalFluxStorage.state.property.property.property.property;
(Bien que dans ce cas, vous pourriez envisager d'exporter un Promise ou EventEmitter à la place)