目前,我们所有的JavaScript依赖项都是在index.html中维护的,方法是以右顺序导入它们!这种方法很快就会成为一场噩梦,编写测试和查看测试覆盖率并不是一件容易的事情。
作为未来的储蓄,我们决定使用ES2015的模块化方法。
现在,我们需要重新设计JavaScript文件,以便能够维护单个JavaScript模块之间的依赖关系。到目前一切尚好。但是,我们如何做到这一点来保存名称空间、闭包等呢?
这是一个示例代码:
//namespace check
var app_ns = app_ns || { };
// ****************************************************************************
// Module: app
// ****************************************************************************
app_ns.app = (function initialize () {
// ***
// basic APIs and definitions
// ***
// Application version will be replaced by Gruntfile task.
// Don't change the version manually!!!
var AW_VERSION = "1.4.32";
function version () { return AW_VERSION; }
...
// ***
// exports
// ***
return {
version : version
};
}());从上面的代码可以看到,初始化被执行并分配给app_ns.app。由于简单,代码片段没有显示对其他模块的依赖,但我们确实有这些模块!
所以问题是
使用export { xxx };是在全局范围内导出{...}中的所有函数,对吗?如何将导出的函数绑定到正确的命名空间?在这个例子中,app_ns.app
发布于 2016-09-20 14:58:25
“使用export{ xxx };是否导出全局范围内的所有函数,对吗?”并不完全正确。它将其导出到导入它的范围。目前,浏览器还没有一种处理模块的方法,所以大多数绑定器都会将它转换为CommonJs标准并对其进行范围调整,这样它就不会破坏全局。我将重新评估在模块范型下是否需要名称空间。
https://stackoverflow.com/questions/35198151
复制相似问题