Across different web technologies, do “Components” and “Modules” represent equivalent concepts, despite using different labels?


I’m trying to get my head around the underlying / implied significance of two terms used in Web Development:

I am aware that:

  • Node.js uses CommonJS Modules
  • ES2015 uses ES Modules
  • Deno uses ES Modules

I am also aware that:

  • React.js uses Components
  • Angular 7 uses Components
  • Vue.js uses Components
  • WebComponents uses Components

But at a conceptual level, in each technology-environment, do Components and Modules represent essentially the same sort of category (ie. self-contained, fundamental blocks of code, around which the technology-environment revolves)?

In summary: are Components and Modules two distinct names for the same sort of thing? Can we say that even if they aren’t identical concepts, they are, at least, equivalent?

OR…

is it the case that Components and Modules represent blocks of code at fundamentally different levels of hierarchy?

And that these labels are more than just arbitrary – they actually represent two different concepts.

Can we say that Components and Modules are not only not-identical, they are also not-equivalent?