ES6 中的子模块是什么?

What are sub-modules in ES6?

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

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

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

提前致谢。

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

src/app.js

src/specificModule/specificModuleA.js

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

...

也就是说,如果您使用某种构建工具进行开发,在这种情况下,我会自动为您考虑 Webpack, it can extract commonly used functionality into common module。它通过分析源文件的依赖树来做到这一点。

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

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

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

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

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

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