什么是ES6中的子模块?

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

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

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

提前致谢。

ES6中没有子模块的概念。 只有模块的概念。 模块是程序中一个单元的抽象,ES6引入了新的语法 。

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

在ES6中,一个文件就是一个模块。 那么让我们回顾一下下面的项目结构:

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

在这里你可以说, myapp根模块 。 它包含一个子模块lib 。 模块myapp在文件index.es6定义。 myapp模块的子模块lib (或者只是模块myapp/lib )包含两个子模块backendvalidator

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

 src/app.js src/specificModule/specificModuleA.js src/common/commonModuleB.js src/common/commonMofuleC.js ... 

这就是说,如果您开发使用一些构build工具,在这种情况下我正在考虑Webpack ,它可以自动提取常用的function到您的公共模块 。 它通过分析源文件的依赖关系树来实现。

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