ES6中的子模块是什么?

时间:2015-08-01 11:19:49

标签: javascript angularjs node.js design-patterns module

假设我有一个名为a.js的ES6模块。 a.js个模块导入b.jsc.js个模块。同样,b.js导入d.jsc.js导入e.js

现在我想知道的是哪些是子模块和超级模块。

我觉得b.jsc.jsa.js的子模块。但我不确定。真的很困惑。请帮忙。

提前致谢。

2 个答案:

答案 0 :(得分:2)

在ES6模块上下文中,所有模块都是相同的,这意味着您可以通过创建适当的文件夹结构将它们分组到项目中。类似的东西:

src/app.js

src/specificModule/specificModuleA.js

src/common/commonModuleB.js
src/common/commonMofuleC.js

...

话虽这么说,如果你使用一些构建工具开发,在这种情况下我正在考虑Webpack,它可以自动将常用功能提取到common module。它通过分析源文件的依赖关系树来实现。

但Webpack是一个非常复杂的工具,所以现在只需要在适当的文件夹结构中构建项目源就足够了。

答案 1 :(得分:1)

ES6中没有子模块这样的概念。只有模块的概念。模块是程序中一个单元的抽象,ES6为此引入了新的syntax

子模块是模块的方便名称,由其他模块包含。这里重要的是由关系确定的子模块包含而不是关系导入。在ES6子模块中用作抽象概念。

在ES6中,一个文件是一个模块。因此,让我们以项目结构为例进行审核:

myapp/
├── index.es6
└── lib
    ├── index.es6
    ├── backend.es6
    └── validator.es6

您可以说,myapp根模块。它包含一个子模块lib。模块myapp在文件index.es6内定义。 lib模块的子模块myapp(或仅模块myapp/lib)包含两个子模块backendvalidator