我想导出一个模块,该模块从某个全局对象中获取模块的定义。
它大概是这样的:
export {
get DynamicModule() {
return __globalFluxStorage.state.property.property.property.property
}
}
...
import {DynamicModule} from 'dynamic-module'
我们有一个复杂的通量存储,DynamicModule只是一种访问__globalFluxStorage. state. property. property. property. property的方法,不需要输入long属性访问器。这可能吗?谢谢。
编辑:
因为我使用巴别塔,尝试这样的东西:
Object.defineProperty(module.exports, "Forms", {
get: function() {
return __globalFluxStorage.state.property.property.property.property
}
});
但不起作用,即{动态模块}为undefined
3条答案
按热度按时间qgelzfjb1#
不,不可能为模块导出制作getter--它们是变量绑定,而不是属性。
但是,您可以简单地将其设置为默认导出:
如果需要命名导入,则必须在导出中声明名称:
这还允许在模块加载时无法使用该值的情况下稍后更改该值:
(尽管在这种情况下,您可能需要考虑导出Promise或EventEmitter)
v440hwme2#
如果每次导入时都需要重新计算值,则可以使用getter导出对象或导出函数。
然后导入
一个更详细的例子
进口
edqdpe6u3#