【发布时间】:2020-04-21 11:53:50
【问题描述】:
一旦我们export 某事在JS。例如,在一个名为 foo.js 的文件中,我们有一行写着::
export default foo;
我们可以从任何我们想要的文件全局导入它。但是,如果需要避免它怎么办。
这是一个问题陈述:
- 认为
X是一个包含A和B模块的应用程序。 - 每个模块
A和B都包含一个文件parser.js,其中包含一些同名的导出函数。 - 假设
A和B是独立的模块。 - 如果
A和B是独立模块,原则上,模块不应访问其范围之外的功能/功能。 - 由于导出是全球可用的,在开发过程中,一个人可以访问
parser.js文件中的函数,他/她可能会在不知不觉中使用错误的代码。
有没有办法定义一个范围,导出的模块只能在某个级别使用。
如果没有,那么有什么创造性的方法可以解决这个问题吗?
寻找解决大规模开发问题/经验的想法 :)
【问题讨论】:
-
鉴于您必须使用它们的文件路径从这些文件中显式导入函数,这不是比较清楚吗?
-
没错,它们的文件路径不同。我试图与访问对象属性的开发经验进行类比。如果我正在使用一个对象,它的所有属性都可用(可访问)。我想知道是否有办法使用
exports实现类似的依赖行为。有点像命名空间? -
模块本身已经是一个命名空间。如答案中所述,也许您正在寻找
import * as foo from "mod.js";为整个模块分配一个清晰的名称? -
是的,我认为这可能有效。谢谢:)
标签: javascript ecmascript-6 ecmascript-next