假设我有一个名为a.js
的ES6模块。 a.js
个模块导入b.js
和c.js
个模块。同样,b.js
导入d.js
和c.js
导入e.js
。
现在我想知道的是哪些是子模块和超级模块。
我觉得b.js
和c.js
是a.js
的子模块。但我不确定。真的很困惑。请帮忙。
提前致谢。
答案 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
)包含两个子模块:backend
和validator
。